Ciao! Mi chiamo Dima, sono il team leader del team SysOps in Wrike. In questo articolo ti spiegherò come in 10 minuti e 5 dollari al mese creare un sito il più vicino possibile all'utente e automatizzarne il deployment. L'articolo ha poco a che fare con i problemi che affrontiamo all'interno del nostro team. È piuttosto la mia esperienza personale e impressioni dall'incontro con una tecnologia nuova per me. Ho cercato di descrivere i passaggi nel modo più dettagliato possibile, affinché le istruzioni siano utili per persone con vari livelli di esperienza. Spero che ti piaccia. Iniziamo!

Quindi, forse hai già trovato un modo semplice ed economico per ospitare un sito. Forse anche gratuito, come descritto in questa.
Ma forse ti senti comunque annoiato e vuoi avvicinarti al meraviglioso nuovo mondo della tecnologia? Diciamo, stai pensando all'automazione del deployment e vorresti velocizzare al massimo il sito? In questo articolo utilizzeremo, ma non è obbligatorio.
Per l'automazione utilizziamo Gitlab CI/CD, ma cosa fare per velocizzare? Procediamo con il deployment del sito direttamente su Cloudflare utilizzando.
Cosa serve per iniziare:
Gitlab (il tuo personale o )
su Cloudflare
Nodejs/npm installati
Se hai già installato Hugo o se preferisci un altro generatore di siti statici (o se non ne usi affatto), puoi saltare questa parte.
Scarica Hugo da
Posiziona il file eseguibile Hugo in uno dei percorsi definiti in
percorso Crea un nuovo sito:
hugo new site blog.example.com
Cambia la directory corrente in quella appena creata:cd blog.example.com
Scegli un tema (o qualsiasi cosa) Crea il primo post:
hugo new posts/my-amazing-post.md
Aggiungi contenuto al file creato:content/posts/my-amazing-post.md Quando hai finito, imposta il valore di draft su.
Genera i file statici: falsehugo -D
Ora il nostro sito statico si trova nella directory
./public ed è pronto per il primo deployment manuale. Parte 2: Configuriamo Cloudflare
Ora ci occupiamo della configurazione iniziale di Cloudflare. Diciamo che abbiamo già un dominio per il sito. Prendiamo come esempio
blog.example.com. Passaggio 1: Creiamo un record DNS
Per prima cosa selezioniamo il nostro dominio e poi la voce di menu
. Creiamo un record A per blog e indichiamo un IP fittizio (questo è il DNSconsiglio ufficiale, ma avrebbero potuto farlo in modo più carino).

Passo 2: Token Cloudflare
Il mio profilo -> Token API tab-> Crea token -> Crea token personalizzato

Qui dovrai limitare il token agli account e ai domini, ma lasciare la possibilità di modifica per le autorizzazioni mostrate nell'immagine.
Conserva il token per il futuro, ci servirà nella terza parte.
Passo 3: Ottieni accountid e zoneid
Dominio → Overview → [pannello laterale destro]
Questi sono i miei, per favore non utilizzarli 🙂
Conservali insieme al token, ci serviranno anche nella terza parte.
Passo 4: Attivazione dei Workers
Dominio → Workers → Gestisci Workers
Scegli un nome unico e il piano Workers → Illimitato (5$ al mese attualmente). Se vuoi, potrai passare alla versione gratuita in seguito.
Parte 3: Primo deployment (implementazione manuale)
Ho eseguito la prima implementazione manualmente per capire cosa stesse realmente accadendo. Anche se tutto questo si può fare in modo più semplice:
Installa wrangler:
npm i @cloudflare/wrangler -gAccedi alla directory del nostro blog:
Scegli un tema (Avvia wrangler:
wrangler init — site hugo-workerCrea il file di configurazione per wrangler (inserisci il token quando richiestoci):
wrangler config
Ora proviamo a modificare il file appena creato wrangler.toml ( elenco completo delle possibili impostazioni):
Specifichiamo accountid e zoneid
Modifica route in qualcosa come *blog.example.com/*
Specifichiamo false per workersdev
Cambia il bucket in ./public (o dove si trova il tuo sito statico)
Se hai più di un dominio nel percorso, dovresti correggere il percorso nello script del worker: workers-site/index.js (vedi la funzione handleEvent)
Ottimo, è ora di pubblicare il sito con il comando wrangler publish.
Parte 4: Automazione del deployment
Questa istruzione è stata redatta per Gitlab, ma trasmette l'essenza e la semplicità del deployment automatizzato in generale.
Passo 1: Creiamo e configuriamo il nostro progetto
Crea un nuovo progetto GitLab e carica il sito: la directory blog.example.com con tutto il contenuto deve trovarsi nella cartella principale del progetto
Imposta variabile CFAPITOKEN qui: Impostazioni → CI/CD → Variabili
Passo 2: Crea il file .gitlab-ci.yml e avvia il primo deployment
Creiamo il file .gitlab-ci.yml nella radice con il seguente contenuto:
fasi:
- costruzione
- distribuzione
costruzione:
immagine: monachus/hugo
fase: costruzione
variabili:
GIT_SUBMODULE_STRATEGY: ricorsivo
script:
- cd blog.example.com/
- hugo
artefatti:
percorsi:
- blog.example.com/public
solo:
- master # questo lavoro influenzerà solo il ramo 'master'
tag:
- gitlab-org-docker #
distribuzione:
immagine: timbru31/ruby-node:2.3
fase: distribuzione
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
artefatti:
percorsi:
- blog.example.com/public
solo:
- master # questo lavoro influenzerà solo il ramo 'master'
tag:
- gitlab-org-docker #Avviamo la prima distribuzione manualmente (CI / CD → Pipelines → Esegui Pipeline) o inviando un commit al ramo master. Voilà!
Conclusione
Bene, forse ho leggermente sminuito, e l'intero processo ha richiesto un po' più di dieci minuti. Tuttavia, ora avete un sito veloce con distribuzione automatica e alcune idee fresche su cosa altro fare con i Workers.
Fonte: habr.com
