Tutorial di GitLab: installazione e primi passi
GitLab è un sistema di controllo versione (VCS) molto diffuso e utilizzato soprattutto nel campo dello sviluppo software. Il software, basato sul web, è stato scritto e pubblicato nel 2011 da Dmitri Saparoschez nel linguaggio di programmazione Ruby on Rails ed è oggi un tool indispensabile per gli sviluppatori.
Il principale vantaggio di GitLab è che facilita significativamente lo sviluppo software partecipativo e agile. Più sviluppatori possono lavorare contemporaneamente a un progetto e, ad esempio, elaborare diverse feature in parallelo. La registrazione continua di tutti i processi assicura che nessuna modifica del codice vada persa o possa essere inavvertitamente sovrascritta. Inoltre, le modifiche già effettuate possono essere annullate senza problemi.
GitLab si basa sul noto software di gestione versioni Git. Git è un software open source, quindi liberamente accessibile, nonché uno dei sistemi di controllo versione più utilizzati. GitLab si pone come la principale alternativa a GitHub (quando GitHub è stato acquisito da Microsoft nel 2018, molti utenti sono passati a GitLab).
Come funziona GitLab?
GitLab è un’applicazione basata sul web dotata di un’interfaccia utente grafica, ma può anche essere installata sul proprio server. Elemento centrale di GitLab sono i progetti in cui il codice da elaborare viene salvato in archivi digitali, i cosiddetti repository. In queste directory di progetto si trovano tutti i contenuti e i file di un progetto software, ossia ad es. i file JavaScript, HTML, CSS o PHP.
In linea di principio, GitLab funziona nel modo seguente: tutti i partecipanti a un progetto caricano per prima cosa una propria copia del repository centrale sul proprio computer. Le modifiche al codice vengono successivamente sempre eseguite dapprima per mezzo di cosiddetti commit. Una volta eseguite, le modifiche vengono importate nel repository principale.
Un’altra funzione importante è il branching. Questa permette agli utenti di creare un “ramo” che devia dalla parte principale del codice e può essere elaborata in modo indipendente. Il branching è utile soprattutto quando si devono inserire e testare nuove funzioni senza intaccare lo sviluppo della linea principale.
Grazie alla Continuous Delivery e alla Continuous Integration, GitLab è adatto per lavorare con i branch (ramificazioni) e offre varie funzioni utili come le merge request e la creazione di fork. Per questo, il software è uno dei tool di Integrazione Continua con il più alto tasso di adozione.
Panoramica delle caratteristiche
Le caratteristiche principali di GitLab comprendono:
- un’interfaccia intuitiva
- i branch possono rimanere privati o essere resi pubblici
- è possibile gestire diversi repository
- code review
- tracking integrato dei bug e degli issue
- Continuous Integration/Delivery (CI/CD) integrata e gratuita
- Wiki di progetto
- creazione semplice di frammenti di codice, che permettono di suddividere parti del codice
Licenza e modelli di utilizzo
GitLab è basato su un codice sorgente aperto e liberamente accessibile. Nel 2013 è stata introdotta anche un’edizione Enterprise proprietaria per le aziende, che ha quindi portato a due i modelli di utilizzo disponibili:
- GitLab CE: Community Edition (gratuita)
- GitLab EE: Enterprise Edition (a pagamento)
Entrambe le versioni si basano sulla licenza open source MIT. Rispetto alla Community Edition, l’Enterprise Edition offre alcune funzioni aggiuntive. GitLab offre a questo riguardo tre diversi modelli di abbonamento, il cui prezzo varia in base alle funzionalità aggiuntive desiderate.
L’Enterprise Edition può tuttavia essere utilizzata anche gratuitamente, ma in questo caso permette di utilizzare solo le funzioni base della Community Edition. Questo modello è indicato nel caso in cui si preveda di installare successivamente la variante Enterprise, dato che in questo modo il passaggio viene effettuato semplicemente con un clic del mouse. Al contrario, il passaggio dalla Community Edition all’Enterprise Edition richiede molto più tempo.
Installazione
Per utilizzare GitLab è generalmente consigliato un ambiente Linux. Come Git, anche il software GitLab è concepito già in partenza per Linux. L’installazione e l’utilizzo in Windows è invece possibile solo con determinate limitazioni; in questo caso è possibile utilizzare una macchina virtuale per simulare un ambiente Linux sul computer Windows. Più facile è installare il cosiddetto Runner GitLab, che serve anche per poter utilizzare la Continuous Integration di GitLab.
Hosting sul proprio server o utilizzo della soluzione cloud
L’installazione di GitLab sul proprio server non pone particolari difficoltà per gli utenti che hanno dimestichezza con Linux, ma è relativamente impegnativa in termini di tempo. Oltre all’installazione vera e propria, è necessario prevedere il tempo necessario per la configurazione e per la regolare manutenzione.
Chi desidera risparmiarsi queste incombenze può anche installare e utilizzare GitLab su un cloud server (offerto da diversi fornitori) come Software as a Service (SaaS). In questo modo, il software può essere utilizzato in poco tempo, senza complesse procedure di installazione e già configurato per l’uso. L’installazione integra normalmente già anche il GitLab Runner, così che sia possibile iniziare subito a lavorare.
Il vantaggio di un’installazione manuale in un ambiente server proprio e la maggiore flessibilità. Gli utenti hanno piena libertà al momento dell’installazione: possono decidere autonomamente riguardo ai backup, agli update o alle risorse aggiuntive e installare precisamente ciò di cui hanno bisogno per le loro esigenze applicative concrete. Ciò nonostante, la soluzione cloud è interessante soprattutto nel caso in cui l’amministratore di sistema sia già oberato di lavoro.
IONOS offre cloud server e server virtuali potenti e a prezzi vantaggiosi che vi permettono di configurare rapidamente la vostra infrastruttura virtuale personalizzata. I server girano con tutte le comuni distribuzioni Linux (Ubuntu, Debian) e, come opzione, con Windows.
Installazione di GitLab su server Linux
Per installare GitLab su un server Linux, occorre per prima cosa il software Git. Potete consultare la procedura di installazione di Git sul server nel nostro Tutorial Git. Successivamente dovete scaricare il pacchetto GitLab Omnibus dal sito web ufficiale di GitLab. Questo pacchetto contiene tutti i file necessari e viene raccomandato per l’installazione di GitLab in Linux.
Aggiornare il repository
Eseguite quindi l’accesso al server come utente root e aggiornate il repository (in questo esempio di Ubuntu) per ricevere tutti i pacchetti necessari per GitLab. A questo scopo, utilizzate i comandi seguenti:
sudo ssh root@GitLabServer
sudo apt-get update
Successivamente, installate i pacchetti nel modo seguente:
sudo apt install curl openssh-server ca-certificates postfix
Durante l’installazione di Postfix compare una schermata di configurazione. Selezionare l’opzione “Internet Site” e immettere il nome del dominio del server che utilizzate per l’invio e la ricezione di e-mail.
Installare GitLab
Nel passaggio successivo eseguite l’installazione del pacchetto Omnibus di GitLab. Per farlo, dovete innanzitutto aggiungere il “GitLab Package Repository” con il comando seguente:
curl https://packages.GitLab.com/install/repositories/GitLab/GitLab-ee/script.deb.sh | sudo bash
Installate quindi GitLab con il comando apt. In questo codice esemplificativo, GitLab viene installato nella Community Edition (CE):
sudo apt install GitLab-ce
Dopo avere immesso il codice, il server scarica e installa il pacchetto GitLab automaticamente. Dopo avere confermato l’installazione, dovete configurare l’URL principale con cui accedete al server GitLab.
Sostituite l’URL "https://GitLab.example.com" con l’URL che utilizzate realmente. Per farlo, andate nella directory /etc/GitLab dove si trova la configurazione e modificate il file di configurazione GitLab.rb con l’editor di testo standard.
I comandi sono i seguenti:
cd /etc/GitLab
vim GitLab.rb
Nel file GitLab.rb cercate la riga 9 (“external_url”) e qui inserite l’URL desiderato. In questo modo, GitLab avvierà e configurerà l’installazione a questo URL.
Al primo avvio si aprirà una schermata in cui dovrete resettare la password. Definite la password per l’amministratore; verrete quindi indirizzati alla schermata di login. Per eseguire l’accesso potete inizialmente utilizzare l’utente standard “root”. Le impostazioni potranno essere modificate in un momento successivo nelle impostazioni del profilo.
Installare GitLab in Windows
GitLab non può, di per sé, essere installato su un server Windows, tuttavia con un cosiddetto GitLab Runner è possibile accedere da Windows a un’installazione di GitLab già configurata su un server Linux. Questo software viene installato in Windows ed è compatibile con la funzionalità di Continuous Integration di GitLab (GitLab CI/CD). In questo modo, il Runner può inviare richieste e incarichi di lavoro a GitLab.
Scaricare Git per Windows e i dati binari per GitLab Runner
Per installare GitLab su un server Windows è necessario dapprima disporre di Git per Windows. Il software può essere scaricato dal sito web ufficiale. Inoltre è consigliabile assegnare una password personale all’account utente qualora non si utilizzi l’account di sistema standard.
È inoltre necessario disporre di un cosiddetto token che autorizzi l’accesso del Runner all’istanza GitLab. Questa chiave di accesso si trova nelle impostazioni di GitLab al percorso “Settings” -> “CI/CD”.
Nel passaggio successivo dovete scaricare il file binario (x86 o amd64) per il GitLab Runner per Windows e creare una cartella in una posizione a vostra scelta nel sistema, ad es. C:\GitLab-runner.
Aggiungete il file in questa cartella e rinominatela in GitLab-runner.exe. Successivamente aprite la PowerShell di Windows (oppure il prompt dei comandi) con i diritti di accesso amministratore avanzati.
Registrare il GitLab Runner in Windows
Per registrare il GitLab Runner, a questo punto digitate nella riga di comando il comando seguente:
./GitLab-runner.exe register
Successivamente immettete l’URL dell’installazione di GitLab (qui un esempio):
https://GitLab.com
Nella finestra successiva immettete il token per collegare il Runner con l’installazione di GitLab. A questo punto potete definire una descrizione del Runner. Quest’opzione può in ogni caso essere modificata anche in seguito nell’interfaccia di GitLab. La finestra successiva permette di definire i tag. Questi tag sono utili soprattutto quando un Runner deve gestire più progetti contemporaneamente. Con i tag è possibile stabilire con precisione quali progetti vengono di volta in volta assegnati.
Nell’ultimo passaggio definite il cosiddetto “executor”, ossia l’ambiente in cui lavora il Runner, nello specifico un’istanza VirtualBox o un ambiente Shell. Shell è l’executor in assoluto più semplice da configurare e rappresenta l’opzione standard quando si registra per la prima volta un GitLab Runner in Windows.
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell
Installare e avviare il GitLab Runner in Windows
Per installare il GitLab Runner, potete utilizzare l’account di sistema integrato oppure un account utente personale. Nella PowerShell o nel prompt dei comandi, andate alla directory che avete creato in precedenza, quindi lanciate in successione i comandi seguenti:
cd C:\GitLab-Runner
.\GitLab-runner.exe install
.\GitLab-runner.exe start
Muovere i primi passi
Dopo avere installato GitLab, l’interfaccia utente grafica può essere richiamata all’URL precedentemente definito. A questo scopo potete utilizzare il browser di vostra preferenza e accedere come amministratore. Il nome utente e la relativa password possono anche essere modificati in un momento successivo nella sezione Admin.
Creare utenti
Nella sezione Admin potete selezionare la voce di menu “New User” e creare gli utenti che dovranno lavorare insieme ai vari progetti in GitLab. Per farlo dovete configurare un vostro indirizzo e-mail e i dati di accesso personali per l’utente, quindi assegnare a quest’ultimo il progetto desiderato.
In questa stessa sezione potete inoltre modificare i diritti utente selezionando “Edit”, bloccare un utente oppure eliminarlo completamente. Tenete presente che il blocco di un utente fa sì che quest’ultimo non possa più accedere, mentre tutti i dati (ad esempio i commit) vengono conservati. L’eliminazione completa cancella anche le informazioni collegate all’utente, pertanto quest’opzione dovrebbe essere selezionata con molta attenzione.
Creare un nuovo progetto
Il passaggio più importante consiste innanzitutto nella creazione di un nuovo progetto. A questo scopo selezionate il pulsante “New Project”, così da essere indirizzati alla finestra del progetto da creare. Nel campo “Project Name” inserite il nome del progetto, che non deve contenere caratteri speciali o spazi. Alla voce “Visibility” definite la visibilità, ossia quali utenti hanno accesso al progetto. A questo riguardo potete scegliere tra quattro livelli:
- Privato: il progetto è accessibile solo a voi.
- Interno: il progetto è accessibile a ogni utente che ha eseguito il login.
- Pubblico: il progetto è accessibile a ogni utente senza preventiva autenticazione.
Una volta definite le impostazioni, create il progetto selezionando “create project”. In seguito potete collegare il progetto a un repository Git locale. Per farlo, nella vista del progetto, in corrispondenza del nome del progetto, selezionate l’opzione “HTTPS” e copiate i comandi visualizzati nella riga di comando.
Se non disponete ancora di una copia locale del repository sul server, potete crearla da qui, immettendo il comando seguente:
$ git clone https://server/namespace/project.git
Una volta che il repository è stato inizializzato con il primo push, tutte le informazioni sul repository possono essere visualizzate sulla pagina del progetto. Qui potete visualizzare inoltre le ultime attività e consultare il log del commit per sapere quali modifiche al codice sono state apportate da chi e quando.
Lavorare con GitLab in team
Il modo più semplice per lavorare a un progetto di GitLab insieme ad altri utenti è quello di consentire agli utenti l’accesso push diretto al repository. A questo scopo aggiungete gli utenti a un progetto, come spiegato sopra, e assegnate loro i relativi diritti di accesso.
Gli utenti con il diritto di “developer” o superiore possono spostare i propri commit e i propri branch nel repository senza alcuna limitazione. In alternativa è anche possibile utilizzare le cosiddette merge request: in questo modo è possibile esercitare un maggior controllo sugli accessi, poiché il branch master non viene elaborato in modo diretto. Gli utenti possono infatti creare un branch, inserire i propri commit, quindi inviare una richiesta di merge per incorporare il branch nel master (o in un altro branch).
Gli utenti senza diritti di accesso possono inoltre creare dei fork, vale a dire elaborare una propria copia del progetto con commit push. Successivamente possono inviare una richiesta di merge per incorporare nuovamente il fork nel progetto principale. Questa funzione permette al proprietario del progetto di avere il pieno controllo su ciò che arriva nel repository, ma anche di consentire a utenti sconosciuti di fornire il proprio contributo.
Essendo un tool collaborativo già ampiamente sviluppato, GitLab dispone di numerose funzioni che facilitano la collaborazione in team, ad esempio wiki di progetto o tool per la manutenzione del sistema.