Torna al blog

Come configurare il deployment automatico con Git con un VPS

Come configurare il deployment automatico con Git con un VPS

Git è il sistema di controllo versione più popolare nel campo dello sviluppo software. È open-source e attivamente mantenuto dal 2005 da Linus Torvalds, il famoso creatore di Linux. Oggi, un numero impressionante di progetti software (compresi quelli commerciali) utilizza Git per la gestione delle versioni.

Git segue un'architettura distribuita, rendendolo un esempio perfetto di DVCS (Distributed Version Control System). Utilizzando Git, possiamo gestire contemporaneamente sia un repository locale che uno remoto. In questa guida, mostreremo come configurare un deployment automatico di un progetto Git con un VPS.

Prerequisiti

In questa guida, ci saranno un repository locale e un repository remoto sul VPS. Un repository locale invierà (push) le modifiche al repository remoto. Dal repository remoto, possiamo inviare le modifiche al betalive branch. Per ottenere questo risultato, ci sono un paio di prerequisiti di cui devi occuparti prima.

Per stabilire una connessione sicura al VPS, utilizzeremo SSH. Fortunatamente, anche Git supporta SSH come protocollo per connettersi ai repository remoti. Questa guida esplora la configurazione di SSH per connettersi a server remoti su Ubuntu.

Configurazione del VPS

Sul nostro server remoto, avremo la seguente configurazione:

  • Directory live: /var/www/dummy-domain.com
  • Repository del server: /var/repo/site.git

Dalla macchina locale, Git invierà gli aggiornamenti al repository del VPS. Dal repository del VPS, configureremo uno script che Git utilizzerà per inviarli automaticamente alla directory live. È anche possibile configurare un repository per le beta release.

  • Creazione dei repository

Connettiti al VPS e crea le posizioni del repository:

Deployment with Git screenshot 1

Successivamente, inizializza il repository Git:

Deployment with Git screenshot 2

Qui, il flag --bare descrive che non ci saranno file sorgente, ma solo i componenti del controllo versione.

  • Hook

Successivamente, configureremo gli hook per il repository. Ogni repository Git contiene una cartella chiamata hooks. Contiene file di esempio che fungono da modello per gli hook e varie azioni personalizzate.

Secondo la documentazione ufficiale di Git, ci sono tre tipi di hook:

  • pre-receive: Viene eseguito non appena il server riceve una richiesta di push.
  • post-receive: Viene eseguito quando una richiesta di push è completata.
  • update: Simile a pre-receive. Tuttavia, viene eseguito una volta per branch.

Dalla posizione del repository, esegui il comando ls:

Deployment with Git code screenshot 3

Cambia la directory corrente in hooks:

Deployment with Git code screenshot 4

Ora, crea lo script post-receive:

All'interno dello script, inserisci il seguente codice. Assicurati di modificare le posizioni delle directory di conseguenza:

Deployment with Git code screenshot 6

Salva il file e chiudi l'editor. Imposta il file come eseguibile:

Deployment with Git code screenshot 7

Ora, ogni volta che un push viene completato, Git guarderà all'interno dello script post-receive e posizionerà i file di conseguenza.

Configurazione della macchina locale

La macchina remota è pronta ad accettare gli aggiornamenti in entrata del progetto Git. Successivamente, configureremo il repository locale per utilizzare il VPS come server Git remoto.

Creiamo una directory di esempio per il progetto Git:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Ora, inizializza il repository:

Deployment with Git code screenshot 9

Dobbiamo dichiarare il percorso remoto del repository. Qui faremo riferimento alla posizione remota come branch live . Quindi, esegui il seguente comando:

sudo git remote

Mettiamolo alla prova. Abbiamo aggiunto uno script di shell alla directory del progetto:

project directory

Successivamente, aggiungi il file al progetto ed esegui un commit:

Deployment with Git code screenshot 10

Nel prossimo comando, faremo il push del progetto sul live server:

Deployment with Git code screenshot 11

Git si connetterà al VPS tramite SSH. Se la connessione SSH è stata configurata per utilizzare una password, Git richiederà la password di autenticazione.

Repository Beta

E se il progetto non dovesse essere distribuito in un unico passaggio? Forse richiede ulteriori test all'interno di una directory beta. Utilizzando il metodo descritto finora, possiamo creare un altro branch nel VPS, denominato beta branch.

  • Configurazione del Branch Beta su VPS

Innanzitutto, dobbiamo creare le directory per il VPS. Connettiti al VPS e crea una directory sotto /var/www:

Ora, abbiamo bisogno di un repository Git che fungerà da beta branch:

Inizializza il repository:

sudo git init

Proprio come prima, implementa uno script post-receive script:

sudo nano

Dopodiché, inserisci il seguente codice:

GNU nano

Salva il file e chiudi l'editor. Contrassegna post-receive come file eseguibile:

sudo chmod
  • Aggiunta del Repository Beta sulla Macchina Locale

Ora siamo pronti per aggiungere il repository beta al nostro repository locale. All'interno della directory del progetto locale, esegui il seguente comando Git:

Voilà! Il repository locale è ora configurato con il repository remoto beta. Prova a fare il push delle modifiche:

sudo git add
  • Passaggio da Beta a Live nel VPS

Ipotizziamo che tutte le modifiche siano state accumulate nel repository beta repo. Come si fa il push delle modifiche al repository live repo? È molto semplice. All'interno del repository beta su VPS, aggiungiamo il repository locale live repo. Successivamente, facciamo semplicemente il push della release beta al repository live repo.

Connettiti al VPS ed esegui i seguenti comandi:

Quindi, puoi fare il push della release beta su live:

sudo git push live master

Considerazioni Finali

Questa guida dimostra con successo come configurare e utilizzare un VPS como repository remoto per il tuo progetto Git. Il VPS può distribuire automaticamente il codice e i file più recenti senza alcun processo complesso. Può anche fungere da centro di collaborazione tra più team di sviluppo.

Con l'aiuto di Git, puoi stabilire un semplice meccanismo per la distribuzione automatica. Per una corretta gestione del progetto, tuttavia, si consiglia di utilizzare uno strumento come GitLab. La seguente guida mostra come installare e distribuire GitLab su un VPS che gestisce più progetti. Puoi anche dare un'occhiata a come configurare le pipeline di GitLab Continuous Integration (CI) su Ubuntu 20.04.

Buon lavoro!

author

Hark Labs

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.