Salut! Numele meu este Dima, sunt liderul echipei SysOps la Wrike. În acest articol, voi explica cum poți crea un site cât mai apropiat de utilizator în 10 minute și pentru 5 dolari pe lună, automatizându-i desfășurarea. Articolul nu are nicio legătură cu problemele pe care le rezolvăm în cadrul echipei noastre. Este, mai degrabă, experiența și impresiile mele legate de o tehnologie nouă pentru mine. Am încercat să descriu pașii cât mai detaliat, astfel încât instrucțiunea să fie utilă pentru persoane cu experiențe diferite. Sper să vă placă. Să începem!

Așadar, poate ai găsit deja o modalitate simplă și ieftină de a găzdui un site. Poate că este chiar gratuită, așa cum este descris în această.
Dar poate că totuși te simți plictisit și vrei să te apropie de minunata lume nouă a tehnologiilor? Să zicem, că te gândești la automatizarea desfășurării și ai dori să îți accelerezi site-ul cât mai mult posibil? În acest articol, vom folosi, dar nu este obligatoriu.
Pentru automatizare, folosim Gitlab CI/CD, dar ce facem cu accelerarea? Hai să desfășurăm site-ul direct pe Cloudflare cu ajutorul.
Ce este necesar pentru a începe:
Gitlab (propriul tău sau )
pe Cloudflare
Node.js/NPM instalat
Dacă ai deja instalat Hugo sau dacă preferi un alt generator de site-uri statice (sau nu folosești deloc), poți sări peste această parte.
Descarcă Hugo de pe
Plasează fișierul executabil Hugo într-una din căile definite în
creăm un nou site: hugo new site blog.example.com
Schimbăm directorul curent în cel nou creat:
cd blog.example.comAlegeri tema (
sau orice altceva)Creăm prima postare: hugo new posts/my-amazing-post.md
Adaugă conținut în fișierul creat:
content/posts/my-amazing-post.mdCând totul este gata, schimbă valoarea draft în Generăm fișierele statice:.
hugo -D falseAcum site-ul nostru static se află în directorul
./public
și este pregătit pentru prima desfășurare manuală. Partea 2: Configurarea Cloudflare Acum să ne ocupăm de configurarea inițială a Cloudflare. Presupunem că domeniul pentru site-ul nostru există deja. Ca exemplu, să luăm
blog.example.com.
Pasul 1: Crearea înregistrării DNS Mai întâi, alegem domeniul nostru, apoi secțiunea din meniu
Creăm o înregistrare A pentru blog și indicăm un IP fictiv (aceasta este o
recomandare oficială DNS. Создаем A-запись blog и указываем для нее какой-нибудь фиктивный IP (это официальная, dar le-ar putea face într-un mod mai atractiv).

Pasul 2: Token Cloudflare
Profilul meu -> Token-uri API tab-> Creează token -> Creează token personalizat

Aici va trebui să restricționezi token-ul pe conturi și zone, dar să lași opțiunea Edit pentru permisiunile enumerate în imagine.
Salvează token-ul pentru viitor, ne va fi necesar în a treia parte.
Pasul 3: Obținem accountid și zoneid
Domeniu → Prezentare generală → [bara laterală dreaptă]
Acestea sunt ale mele, te rog nu le folosi 🙂
Păstrează-le lângă token, vor fi necesare și în a treia parte.
Pasul 4: Activarea Workers
Domeniu → Workerii → Administrare Workers
Alegem un nume unic și planul Workers → Unlimited (5$ pe lună în prezent). La dorință, mai târziu poți trece la versiunea gratuită.
Partea 3: Prima desfășurare (desfășurare manuală)
Am efectuat prima desfășurare manual pentru a înțelege ce se întâmplă de fapt. Deși totul poate fi făcut mai simplu:
Instalăm wrangler:
npm i @cloudflare/wrangler -gTrecem în directorul blogului nostru:
sau orice altceva)Lansăm wrangler:
wrangler init — site hugo-workerCreăm config pentru wrangler (introduci token-ul atunci când este solicitat):
wrangler config
Acum să încercăm să facem modificări în fișierul tocmai creat wrangler.toml ( lista completă a setărilor posibile):
Specificați accountid și zoneid
Schimbăm route în ceva de genul *blog.example.com/*
Specificați false pentru workersdev
Schimbăm bucket-ul în ./public (sau în care se află site-ul tău static)
Dacă ai mai multe domenii pe calea ta, va trebui să corectezi calea în scriptul de lucru: workers-site/index.js (vezi funcția handleEvent)
Excelent, este timpul să desfășurăm site-ul cu comanda wrangler publish.
Partea 4: Automatizarea desfășurării
Această instrucțiune este redactată pentru Gitlab, dar transmite esența și simplitatea desfășurării automatizate în general.
Pasul 1: Creăm și configurăm proiectul nostru
Creăm un nou proiect GitLab și încărcăm site-ul: directorul blog.example.com cu tot conținutul trebuie să fie în directorul rădăcină al proiectului
Setăm . Observați că versiunea din fișier CFAPITOKEN aici: Setări → CI/CD → Variabile
Pasul 2: Creăm fișierul .gitlab-ci.yml și lansăm prima desfășurare
Creăm fișierul .gitlab-ci.yml în rădăcină cu următorul conținut:
etape:
- construire
- desfășura
construire:
imagine: monachus/hugo
etapă: construire
variabile:
GIT_SUBMODULE_STRATEGY: recursive
script:
- cd blog.example.com/
- hugo
artefacte:
căi:
- blog.example.com/public
doar:
- master # această sarcină va afecta doar ramura 'master'
taguri:
- gitlab-org-docker #
desfășurare:
imagine: timbru31/ruby-node:2.3
etapă: desfășurare
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
artefacte:
căi:
- blog.example.com/public
doar:
- master # această sarcină va afecta doar ramura 'master'
taguri:
- gitlab-org-docker #Pornim prima desfășurare manual (CI / CD → Pipeline-uri → Rulați Pipeline) sau trimițând un commit în ramura master. Voilà!
Concluzie
Ei bine, poate că am subestimat puțin, iar întregul proces a durat puțin mai mult de zece minute. Dar acum aveți un site rapid cu desfășurare automată și câteva idei proaspete despre ce altceva puteți face cu ajutorul Workers.
Sursa: habr.com
