Mhoro! Zita rangu ndinonzi Dima, ndiri tekinoroji inotungamira timu yeSysOps kuWrike. Muchikamu chino ini ndichakuudza maitiro ekuita webhusaiti padyo nemushandisi sezvinobvira mumaminitsi gumi uye madhora mashanu pamwedzi uye otomatiki kutumira kwayo. Chinyorwa hachina kana chekuita nematambudziko atinogadzirisa mukati mechikwata chedu. Ichi ndicho chiitiko changu pachangu uye maonero ekusvika pakuziva tekinoroji iri nyowani kwandiri. Ndakaedza kutsanangura matanho mune zvakadzama sezvinobvira kuitira kuti mirairo ibatsire vanhu vane ruzivo rwakasiyana. Ndinovimba uchanakidzwa. Enda!
Saka, pamwe iwe wakatowana yakapusa uye yakachipa nzira yekugamuchira webhusaiti. Pamwe kunyange mahara, sezvinotsanangurwa mune izvi
Asi kamwe kamwe iwe uchiri kufinhwa uye uchida kubata nyika itsva yakashinga yetekinoroji? Ngatiti iwe uri kufunga nezve automating deployment uye unoda kumhanyisa saiti yako zvakanyanya sezvinobvira? Munyaya ino tichashandisa
Isu tinoshandisa Gitlab CI/CD kuita otomatiki, asi zvakadini nekumhanyisa? Ngatiisei saiti yacho zvakananga kuCloudflare tichishandisa
Chii chinodiwa kutanga:
-
Gitlab (yako kana
makore ) -
Account pa Cloudflare -
Yakaiswa
nodejs/npm
Chikamu 1: Kuisa Hugo
Kana iwe uchinge uchinge uine Hugo yakaiswa, kana kana iwe uchida rakasiyana static saiti jenareta (kana usashandise imwe zvachose), saka unogona kusvetuka ichi chikamu.
-
Download Hugo kubva
https://github.com/gohugoio/hugo/releases -
Isu tinoisa iyo Hugo faira rekuita zvinoenderana neimwe yeaya anotsanangurwa mukati
PATH nzira -
Kugadzira saiti itsva:
hugo new site blog.example.com
-
Chinja dhairekitori razvino kune richangogadzirwa:
cd blog.example.com
-
Sarudza dhizaini dingindira (
https://github.com/budparr/gohugo-theme-ananke/releases kana chii) -
Ngatigadzirirei chinyorwa chekutanga:
hugo new posts/my-amazing-post.md
-
Wedzera zvirimo kune iyo yakagadzirwa faira: content/posts/my-amazing-post.md.
Kana zvese zvaitwa, shandura kukosha kwekunyorwa kuti venhema -
Kugadzira static mafaera:
hugo -D
Iye zvino yedu static saiti iri mukati medhairekitori ./paruzhinji uye wakagadzirira kutumirwa kwako kwekutanga.
Chikamu 2: Kumisikidza Cloudflare
Zvino ngatitarisei yekutanga kuseta kweCloudflare. Ngatifungei kuti isu tatova nenzvimbo yesaiti. Ngatitorei semuenzaniso blog.example.com.
Danho 1: Gadzira DNS yekupinda
Kutanga, sarudza yedu domain, uye ipapo chinhu chemenyu DNS. Isu tinogadzira blog A-rekodhi uye tinoratidza imwe yenhema IP yayo (uyu ndiye mukuru
Nhanho 2: Cloudflare Token
-
My Profile -> API tokens tab-> Gadzira Chiratidzo -> Gadzira Custom Token
Pano iwe unozofanirwa kudzikamisa chiratidzo kumaakaundi uye nzvimbo, asi siya iyo Rongedza sarudzo yemvumo yakanyorwa pamufananidzo.
Chengetedza chiratidzo chenguva yemberi, tichachida muchikamu chechitatu.
Nhanho 3: Tora accountid uye zoneid
Domain β tsananguro β [bhara rekurudyi]
Aya ndeangu, usashandise ndapota :)
Vaponese pedyo nechiratidzo, tichavadawo muchikamu chechitatu.
Nhanho 4: Activate Workers
Domain β vashandi β Manage Vashandi
Isu tinosarudza rakasiyana zita uye mutero Vashandi β Unlimited ($5 pamwedzi nhasi). Kana uchida, iwe unogona gare gare kusimudzira kune yemahara vhezheni.
Chikamu 3: Kutanga kutumirwa (manual deployment)
Ndakaita yekutanga kutumirwa kwemaoko kuti ndizive kuti chii chaizvo chaiitika ipapo. Kunyangwe izvi zvese zvinogona kuitwa zviri nyore:
-
Isa wrangler:
npm i @cloudflare/wrangler -g
-
Ngatiendei kune dhairekitori reblog redu:
cd blog.example.com
-
Launch wrangler:
wrangler init β site hugo-worker
-
Gadzira config ye wrangler (isa chiratidzo kana wabvunzwa):
wrangler config
Zvino ngatiedzei kuita shanduko kune ichangobva kusikwa faira wrangler.toml (
-
Tinoratidza accountid uye zoneid
-
Chinja nzira kune chimwe chinhu *blog.example.com/*
-
Tinoratidza venhema nokuti workersdev
-
Shandura bhaketi kuti ./public (kana kuti nzvimbo yako yakamira iripo)
-
Kana iwe uine anopfuura dura rimwechete munzira, saka iwe unofanirwa kururamisa nzira mune inoshanda script: workers-site/index.js (ona basa handleEvent)
Zvakanaka, inguva yekuendesa saiti uchishandisa timu wrangler publish
.
Chikamu 4: Deployment otomatiki
Iri gwara rakanyorerwa Gitlab, asi rinotora iwo musimboti uye kureruka kweotomatiki kutumira mune zvese.
Danho 1: Gadzira uye gadzirisa chirongwa chedu
-
Gadzira purojekiti itsva yeGitLab uye rodha saiti: dhairekitori blog.example.com nezvese zviri mukati zvinofanirwa kunge zviri muprojekiti dhairekitori
-
We set variable CFAPITOKEN pano: Settings β CI / CD β Zvinyorwa
Danho rechipiri: Gadzira .gitlab-ci.yml faira uye shandisa kutumira kwekutanga
Gadzira faira .gitlab-ci.yml mumudzi mune zvinotevera zvirimo:
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 #
Isu tinotangisa yekutanga kutumira nemaoko (CI/CD β Mapipi β Run Pipeline) kana nokuzvipira kubazi guru. Voila!
mhedziso
Zvakanaka, ndinogona kunge ndakazvidzikisira zvishoma, uye maitiro ese akatora anopfuura maminetsi gumi. Asi ikozvino une saiti yekukurumidza ine otomatiki kutumirwa uye mamwe mazano matsva nezve zvimwe zvaungaite neVashandi.
Source: www.habr.com