αα½ααααΈ! αααα»αααααα ααΈαααΆ αααα»αααΆα’αααααΉαααΆααα αα ααααααααααΆαααααα»α SysOps αα Wrike α αα αααα»αα’αααααααα αααα»αααΉαααααΆααα’αααααΈαααααααααΎαααα αααααα±αααα αα·αα’αααααααΎααααΆααααΆααααα’αΆα ααααΎαα ααΆααααα»ααααααα 10 ααΆααΈ αα·α 5 αα»ααααΆααααα»ααα½ααα αα·αααααΎα±ααααΆαααααΎααααΆααααααααΆαααααααααααααααα·α α’ααααααααααααΎαααααααΆαα’αααΈααΆαααααααααΉααααα αΆαααααΎααααααααΆααα αααα»ααααα»αααααααΎαα αααβααΆβαααα·ααααα αα·αβα αααΆααβα’αΆααααααβααααΆααβαααα½αβααααβαααα»αβαααα»αβααΆαβααααΆααβαα αα αααα·ααααΆβαααβααααΈβαααααΆααβαααα»αα αααα»αααΆαααααΆααΆααα·αααααΆααα αΆαα±ααααΆααααα’α·αααΆααααα’αΆα ααααΎαα ααΆα ααΎααααΈα±ααααΆαααααΆαααΆααααααααααααααΆααα’ααααααααΆααααα·αααααααααααααααΆα αααα»ααααααΉαααΆα’αααααΉαααΈαααΆαα αα !
ααΌα
αααα αααα ααβααΆβα’αααβααΆαβααβααΎαβαα·ααΈβααΆαααα αα·αβαααβαα½α
βα αΎαβαααα»αβααΆαβαααα ααβααα αααααα αααα ααααΆααΌααααΈααα₯ααα·ααααα ααΌα
αααααΆααα·αααααΆαα
αααα»ααααα
ααα»ααααααααΆαααααα’ααααα
αααα»αααααΆααα αΎαα
ααααααα·ααααααΈαααα
αα
αααα·ααααΆααααααΆα αΆα? α
αΌααα·ααΆαααΆα’ααααααα»ααα·αα’αααΈααΆαααΆαααααααΆααααααααααααααααα· α αΎαα
αααααααΎαααααΏαααα αααααααααα’αααααΆααααα’αΆα
ααααΎαα
ααΆα? αα
αααα»αα’ααααααααααΎαααΉαααααΎ
ααΎαααααΎ Gitlab CI/CD αααααΆααααααααααααααα·αααα ααα»ααααα
α»ααααΆαααΆα
ααααααΆααααααΎαααααΏα? αααααΆαααααααΆαααα ααααααααααααΆαααα
Cloudflare αααααααΎ
α’αααΈααααααααΌαα±ααα αΆααααααΎα:
-
Gitlab (ααααΆαααααα½αααααα’αααα¬
ααα ) -
ααααΈ αα ααΎ Cloudflare -
ααΆαααα‘αΎα
nodejs/npm
αααααααΈ 1: ααΆαααα‘αΎα Hugo
ααααα·αααΎα’αααααΆαααα‘αΎα Hugo αα½α α αΎα α¬ααααα·αααΎα’αααα αΌαα α·ααααααΆαααΈααααααΎαααα ααααααα·αα·ααααααααα (α¬αα»αααααΎααΆααΆααα’αα) αααα’αααα’αΆα ααααααααααααα
-
ααΆααα Hugo ααΈ
https://github.com/gohugoio/hugo/releases -
ααΎαααΆααα―αααΆααααα’αΆα ααααα·ααααα·ααΆα Hugo ααααα ααΆαα―αααΆααααααΆαααααααα αααα»α
PATH αα·ααΈ -
ααΆααααααΎαααα αααααααααΈα
hugo new site blog.example.com
-
ααααΌαβααβαα αα α»ααααααβαα βααβαααβααΎαβαααααΎαβααααΈα
cd blog.example.com
-
ααααΎαααΎααααααΆααααα ααΆ (
https://github.com/budparr/gohugo-theme-ananke/releases α¬α’αααΈααααα) -
ααααααααΎααααααΆαααααΌαα
hugo new posts/my-amazing-post.md
-
ααααααααΆαα·ααΆαα α―αααΆααααααΆααααααΎαα content/posts/my-amazing-post.md.
αα αααα’αααΈαααααααααΆααα½α ααΆαα ααΌαααααΌααααααααααΆααα αα·ααα·α -
ααΆααααααΎαα―αααΆααα·αα·ααααα
hugo -D
α₯α‘αΌααααααα ααααααα·αα·ααααααααααΎαααΆαααΈααΆαααα αααα»ααααα½αα ./ααΆααΆααα αα·αααααααααα½αααΆααααα αααααΆααααΆαααΆαααααααΆααααααααααΌαααααα’αααα
αααααααΈ 2α ααΆαααα‘αΎα Cloudflare
α₯α‘αΌααααααΌααααα‘ααααΎαααΆαααα‘αΎαααααΌααα Cloudflare α α§αααΆααΆααΎαααΆαααααααααΆααααα ααααααα½α α αΎαα α αΌαααΎαααααΆα§ααΆα ααα blog.example.com α
ααα αΆαααΈ 1: αααααΎαααΆαα» DNS
ααααΌαααααΎαααΎααααααααααΎα α αΎααααααΆααααααΆαα»αααΊαα»α ααααα DNS. ααΎααααααΎαααααα A-record α αΎαα
ααα’α»ααααα αΆα IP ααααα·ααα½αα
ααα½ααααααΆααααΆ (αααααΆααααΌαααΆα
ααα αΆαααΈ 2: Cloudflare Token
-
αααααααα·ααΌααααα»α -> αα·αα·ααααααααΆ API ααααΆαα -> αααααΎαααΌααΉα -> αααααΎααα·αα·ααααααααΆααααΆαααααα½α
αα ααΈαααα’αααααΉαααααΌαααααααααααΆαααααΆααα ααααααααΈ αα·αααααα ααα»αααααα»ααααααΎαααααααα½ααααααΆααααΆαα’αα»ααααΆααααααΆαααΆααααα»αααΌαααΆαα
αααααΆαα»ααα·αα·ααααααααΆαααααΆαααααα’ααΆααααΎαααΉαααααΌαααΆαααΆαα αααα»ααααααααΈααΈα
ααα αΆαααΈ 3: ααα½αααΆαααααααααα αα·α zoneid
ααα β αα·αααααΆαααΌαα β [αααΆαα αα ααααΆαααααΆα]
ααΆαααααααΆαααααααα»α αα»αααααΎααΆ :)
αααααΆαα»ααα½αααΆαα ααΆααααΉααααααΆαααααΆαα ααΎαααααααΌαααΆαααΆαα αααα»ααααααααΈααΈαααααα
ααα αΆαααΈ 4: ααααΎα±ααααααααααααα
ααα β αααααα β ααααααααααααααα
ααΎαααααΎαααΎαααααααααα½αααα αα·ααααααααα½ααααααα β ααααΆααααααααα ($5 αααα»ααα½αααααααααα)α ααααα·αααΎα’αααα ααααΆα α’αααα’αΆα ααα‘αΎααααααα ααααα₯ααα·ααααααα ααααααααα
αααααααΈ 3α ααΆαααΆαααααααΆαααααΌα (ααΆαααΆαααααααΆαααααα)
αααα»αβααΆαβααΆααβαααααΆαβαααβααβααΆβααΎαβααααΌαβααΎααααΈβααβα±ααβααΎαβααΌαβα’αααΈβαααβαα·αβααΆβαααα»αβααΎαβα‘αΎαβαα βααΈαααα αααααΈααΆα’αααΈαααΆααα’αααααα’αΆα ααααΎααΆαααΆααααααΆαααααααααα
-
ααα‘αΎα wranglerα
npm i @cloudflare/wrangler -g
-
ααααα αααααααααααααΎαα
cd blog.example.com
-
α αΆααααααΎα wranglerα
wrangler init β site hugo-worker
-
αααααΎαααΆαααααααααααΆαα wrangler (αααα αΌααααααΆαααααΆαααα ααααα½α)α
wrangler config
α₯α‘αΌαβααΎαβααααΆααΆαβααααΎβααΆαβααααΆααβααααΌαβα―αααΆαβαααβααΎαβαααααΎαβααααΈα wrangler.toml (
-
α ααα’α»ααααα αΆα ααααααα αα·α zoneid
-
ααααΆααααααΌα ααααΌα αα ααΉαα’αααΈαα½αααΌα ααΆ *blog.example.com/*
-
α ααα’α»ααααα αΆα αα·ααα·α αααααΆαα ααααααdev
-
ααααΌααα»αααΉααα ααΆ ./public (α¬αααααααααααα ααααααα·αα·ααααααααα’ααααααα·ααα )
-
ααααα·αααΎα’αααααΆααααα αααΎαααΆααα½ααα αααα»αααααΌα αααα’ααααα½αααααααααΌααα αααα»αααααααΈαααααααα»αααααΎαααΆαα workers-site/index.js (ααΌαααΎααα»αααΆα handleEvent)
ααα’ααΆαα ααΆαααααααααααααΌαααΆαααααααΆαααα ααααααααααααΎαααα»α wrangler publish
.
αααααααΈ 4: ααΆαααΆααα±ααααααΎααααΆααααααααααααααα·αααα
ααααα»ααααααααααααααΌαααΆαααααααααααΆαα Gitlab ααα»ααααααΆα αΆααααααααΉαααΆα αα·αααΆαααΆααααα½αααααΆαααΆαααααααΆααααααααααααααααα·ααΆααΌαα α
ααα αΆαααΈ 1: αααααΎα αα·αααααααα ααΆααααααααααααααααααααΎαα
-
αααααΎααααααα GitLab ααααΈ α αΎααααα ααααα αααααα αα blog.example.com ααΆαα½αααΉαααΆαα·ααΆααΆααα’ααααααΌαααααΆαααΈααΆαααα αααα»αααα―αααΆααααααααααα
-
ααΎαααααα α’ααα CFAPITOKEN αα ααΈαααα ααΆαααααα β αααΈα’αΆα / αααΈααΈ β α’ααα
ααα αΆαααΈ 2α αααααΎαα―αααΆα .gitlab-ci.yml α αΎαααααΎαααΆαααΆαααΆαααααααΆαααααΌα
αααααΎαα―αααΆα .gitlab-ci.yml αα αααα»α root αααααΆαααααΉαααΆαααΌα ααΆααααααα
stages:
- build
- deploy
build:
image: monachus/hugo
stage: build
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- cd blog.example.com/
- hugo
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
deploy:
image: timbru31/ruby-node:2.3
stage: deploy
script:
- wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- cd blog.example.com/
- ../dist/wrangler publish
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
ααΎαα αΆααααααΎαααΆαααΆαααααααΆαααααΌαααααα (CI/CD β ααααα β ααααΎαααΆαααααα) α¬αααααΆαααααααααΆα α·ααααα ααΆααΆααα α’αΈαααΆ!
ααα ααααΈααααα·ααααΆα
ααΆααΆααααααΎαααΆαα, αααα»ααααα ααααΆααΆαααααααααΆααααα·α α αΎαααααΎαααΆαααΆααααΌαα αααΆααααααααΆααααααΆααΈααα»αααααα ααα»ααααα₯α‘αΌαααα α’αααααΆαααα ααααααααααΆαααααΏαααΏαααΆαα½αααΉαααΆαααΆαααααααΆααααααααααααααααα· αα·ααααα·αααααΈααα½αα ααα½αα’αααΈα’αααΈαααα’αααα’αΆα ααααΎααΆαααΆαα½αααααααα
ααααα: www.habr.com