เบชเบฐเบเบฒเบเบเบต! เบเปเบญเบเบเบทเป Dima, เบเปเบญเบเปเบเบฑเบเบซเบปเบงเบซเบเปเบฒเบเปเบฒเบเบงเบดเบเบฒเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบตเบกเบเบฒเบ 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 entry
เบเปเบฒเบญเบดเบ, เปเบฅเบทเบญเบเปเบเปเบกเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบฅเบฒเบเบเบฒเบเปเบกเบเบน DNS. เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ blog A-record เปเบฅเบฐเบเบตเปเบเบญเบเบเบฒเบ IP เบเบญเบกเบชเปเบฒเบฅเบฑเบเบกเบฑเบ (เบเบตเปเปเบกเปเบเบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบ
เบเบฑเปเบเบเบญเบเบเบต 2: Cloudflare Token
-
เบเปเปเบกเบนเบเบเบญเบเบเปเบฒเบเบฐเปเบเบปเปเบฒ -> API tokens เปเบเบ-> เบชเปเบฒเบเปเบเปเบเบฑเบ -> เบชเปเบฒเบ Custom Token
เปเบเบเบตเปเบเบตเปเบเปเบฒเบเบเบฐเบเปเบญเบเบเปเบฒเบเบฑเบ token เปเบเบเบฑเบเบเบตเปเบฅเบฐเปเบเบ, เปเบเปเบญเบญเบเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบ Edit เบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบฎเบนเบ.
เบเบฑเบเบเบถเบ token เบชเปเบฒเบฅเบฑเบเบญเบฐเบเบฒเบเบปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฒเบเบกเบฑเบเบขเบนเปเปเบเบชเปเบงเบเบเบตเบชเบฒเบก.
เบเบฑเปเบเบเบญเบเบเบต 3: เปเบเปเบฎเบฑเบเบเบฑเบเบเบตเปเบฅเบฐ zoneid
เปเบเปเบกเบ โ เบเบฒเบเบฅเบงเบก โ [เปเบเบเบเปเบฒเบเบเบงเบฒ]
เปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเบญเบเบเปเบญเบ, เบขเปเบฒเปเบเปเบเบงเบเบกเบฑเบ :)
เบเบฑเบเบเบถเบเบเบงเบเบกเบฑเบเบขเบนเปเบเปเบฒเบ token, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเบญเบเบเบฒเบเบเบงเบเบกเบฑเบเบขเบนเปเปเบเบชเปเบงเบเบเบตเบชเบฒเบก.
เบเบฑเปเบเบเบญเบเบเบต 4: เปเบเบตเบเปเบเปเบเบฐเบเบฑเบเบเบฒเบ
เปเบเปเบกเบ โ เบเบฐโเบเบฑเบโเบเบฒเบ โ เบเบธเปเบกเบเบญเบเบเบนเปเบญเบญเบเปเบฎเบเบเบฒเบ
เบเบงเบโเปเบฎเบปเบฒโเปเบฅเบทเบญเบโเปเบญเบปเบฒโเบเบทเปโเบเบตเปโเปเบเบฑเบโเปเบญโเบเบฐโเบฅเบฑเบโเปเบฅเบฐโเบญเบฑเบโเบเบฒโเบเบฒโเบชเบตโเบเบปเบโเบเบฒเบ โ เบเปเปโเบเปเบฒโเบเบฑเบ ($5 เบเปเปโเปเบเบทเบญเบโเปเบโเบกเบทเปโเบเบตเปโ)โ. เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบญเบฑเบเปเบเบฃเบเปเบเบฑเบเปเบงเบตเบเบฑเบเบเบฃเบตเปเบเบเบฒเบเบซเบผเบฑเบ.
เบชเปเบงเบเบเบต 3: เบเบฒเบเบเบณเปเบเปเบเบฑเปเบเบเบณเบญเบดเบ (เบเบฒเบเบเบณเปเบเปเบเปเบงเบเบกเบท)
เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเปเบฒเปเบเปเบเบนเปเบกเบทเบเบฑเปเบเบเปเบฒเบญเบดเบเปเบเบทเปเบญเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบถเปเบเบขเบนเปเบเปเบญเบเบเบฑเปเบ. เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฑเบเบซเบกเบปเบเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเปเบฒเบเบเบงเปเบฒ:
-
เบเบดเบโเบเบฑเปเบ wranglerโ:
npm i @cloudflare/wrangler -g
-
เปเบซเปเปเบเบเบตเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบญเบ blog เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
cd blog.example.com
-
เปเบเบตเบเบเบปเบง wrangler:
wrangler init โ site hugo-worker
-
เบชเปเบฒเบ config เบชเปเบฒเบฅเบฑเบ wrangler (เปเบชเป token เปเบกเบทเปเบญเบเบทเบเบเบฒเบก):
wrangler config
เบเบญเบเบเบตเปเปเบซเปเปเบฎเบปเบฒเบเบฐเบเบฒเบเบฒเบกเบเปเบฝเบเปเบเบเปเบเบฅเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเปเป wrangler.toml (
-
เบฅเบฐเบเบธเบงเปเบฒ เบเบฑเบเบเบตเปเบฅเบฐ zoneid
-
เบเปเบฝเบเปเบเบ เปเบชเบฑเปเบเบเบฒเบ เบเบฑเบโเบเบฒเบโเบชเบดเปเบโเบเบฒเบโเบขเปเบฒเบ *blog.example.com/*
-
เบฅเบฐเบเบธเบงเปเบฒ เบเบตเปเบเปเปเบเบทเบเบเปเบญเบ เบเบฒเบ เบเบปเบเบเบฒเบ
-
เบเปเบฝเบ bucket เปเบเบฑเบ ./public (เบซเบผเบทเบเปเบญเบเบเบตเปเบชเบฐเบเบฒเบเบเบตเปเบเบปเบเบเบตเปเบเบญเบเปเบเบปเปเบฒเบเบฑเปเบเบขเบนเป)
-
เบเปเบฒเบเปเบฒเบเบกเบตเบซเบผเบฒเบเบเบงเปเบฒเบซเบเบถเปเบเปเบเปเบกเบเปเบเปเบชเบฑเปเบเบเบฒเบ, เบเปเบฒเบเบเบงเบเปเบเปเปเบเปเบชเบฑเปเบเบเบฒเบเปเบเบชเบฐเบเบดเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ: workers-site/index.js (เปเบเบดเปเบเบซเบเปเบฒเบเบตเป handleEvent)
เบเบตเบซเบผเบฒเบ, เบกเบฑเบเปเบเบดเบเปเบงเบฅเบฒเปเบฅเปเบงเบเบตเปเบเบฐเบเบณเปเบเปเปเบงเบฑเบเปเบเปเบเบเปเบเปเบเบตเบกเบเบฒเบ wrangler publish
.
เบชเปเบงเบเบเบต 4: เบเบฒเบเบเบณเปเบเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบ
เบเบนเปเบกเบทเบเบตเปเบเบทเบเบเบฝเบเปเบงเปเบชเปเบฒเบฅเบฑเบ Gitlab, เปเบเปเบกเบฑเบเปเบเบฑเบเบเปเบฒเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเปเบฅเบฐเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเบเบปเปเบงเปเบ.
เบเบฑเปเบเบเบญเบเบเบต 1: เบชเปเบฒเบเปเบฅเบฐเบเปเบฒเบซเบเบปเบเบเปเบฒเปเบเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ
-
เบชเปเบฒเบเปเบเบเบเบฒเบ GitLab เปเบซเบกเปเปเบฅเบฐเบญเบฑเบเปเบซเบฅเบเปเบงเบฑเบเปเบเบเป: เปเบเปเบฅเบเบฐเบเปเบฅเบต blog.example.com เบเบฑเบเปเบเบทเปเบญเปเบเบเบฑเบเบซเบกเบปเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเปเบเบขเบนเปเปเบเบฅเบฐเบเบปเบเบฎเบฒเบเปเบเบเบเบฒเบ
-
เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบ เบเบปเบงเปเบ CFAPITOKEN เบเบตเปเบเบตเป: เบเบฒเบเบเบฑเปเบเบเปเบฒ โ CI / CD โ Variables
เบเบฑเปเบเบเบญเบเบเบต 2: เบชเปเบฒเบเปเบเบฅเป .gitlab-ci.yml เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเปเบเปเบเบฑเปเบเบเปเบฒเบญเบดเบ
เบชเปเบฒเบเปเบเบฅเป .gitlab-ci.yml เปเบเบฎเบฒเบเบเบตเปเบกเบตเปเบเบทเปเบญเปเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
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 โ เบเปเป โ เปเบฅเปเบเบเปเป) เบซเบผเบทเปเบเบเบเบฒเบเปเบซเปเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฑเบเบชเบฒเบเบฒเบเบปเปเบเบชเบฐเบเบฑเบ. เบงเปเบฒเบง!
เบชเบฐเบซเบฅเบธเบ
เบเบต, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบญเบฒเบเบเบฐ understated เบกเบฑเบเปเบฅเบฑเบเบเปเบญเบ, เปเบฅเบฐเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเปเปเบงเบฅเบฒเบเบฝเบเปเบเปเบชเบดเบเบเบฒเบเบต. เปเบเปเบเบญเบเบเบตเปเปเบเบปเปเบฒเบกเบตเปเบงเบฑเบเปเบเปเบงเบเบตเปเบกเบตเบเบฒเบเบเบณเปเบเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบ เปเบฅเบฐเบเบฒเบเปเบเบงเบเบงเบฒเบกเบเบดเบเปเปเปเปเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเบฑเบเบเบปเบเบเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com