GitLab è una piattaforma di controllo della versione gratuita, open source e basata sul Web che ti consente di gestire tutti i tuoi repository Git dal server centralizzato. GitLab è un'ottima alternativa a Github, offrendo funzionalità molto utili tra cui revisione del codice, gestione dei problemi, ramificazione del repository, fusione, monitoraggio del tempo e integrazione e distribuzione continue. GitLab è appositamente progettato per consentire agli sviluppatori di creare, rivedere e distribuire i propri progetti.
GitLab è disponibile in tre diverse edizioni:Community Edition (CE), Enterprise Edition (EE) e una versione ospitata da GitLab. Puoi installarne uno qualsiasi a seconda dei requisiti del tuo caso d'uso.
In questo tutorial, ti mostreremo come installare GitLab CE su CentOS 8.
Prerequisiti
- Un nuovo CentOS 8 VPS sulla piattaforma Atlantic.Net Cloud.
- Una CPU con 2 core per supportare fino a 500 utenti.
- Almeno 4 GB di RAM per supportare fino a 50 utenti.
- Un nome di dominio valido puntato all'IP del tuo server.
- Una password di root configurata sul tuo server.
Fase 1:crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo CentOS 8 come sistema operativo con almeno 4 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al server CentOS 8, esegui il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.
dnf update -y
Successivamente, dovrai installare alcune dipendenze richieste sul tuo sistema. Puoi installarli tutti con il seguente comando:
dnf install curl policycoreutils python3-policycoreutils -y
Fase 2 – Installa GitLab CE
Puoi installarlo con il seguente comando:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
Una volta aggiunto il repository, dovresti ottenere il seguente output:
Quindi, installa GitLab CE eseguendo il comando seguente:
dnf install gitlab-ce -y
Una volta completata con successo l'installazione, puoi procedere al passaggio successivo.
Fase 3 – Proteggi GitLab con Let's Encrypt
Successivamente, dovrai impostare l'URL GitLab e abilitare l'integrazione Let's Encrypt. Puoi farlo modificando il file /etc/gitlab/gitlab.rb:
nano /etc/gitlab/gitlab.rb
Modifica le seguenti righe che corrispondono al tuo nome di dominio e abilita l'integrazione Let's Encrypt con il valore desiderato:
external_url 'https://gitlab.example.com' letsencrypt['enable'] = true letsencrypt['contact_emails'] = ['[email protected]'] letsencrypt['auto_renew'] = true letsencrypt['auto_renew_hour'] = 12 letsencrypt['auto_renew_minute'] = 15 letsencrypt['auto_renew_day_of_month'] = "*/4"
Salva e chiudi il file quando hai finito. Quindi, riconfigura GitLab CE con il comando seguente:
gitlab-ctl reconfigure
Questo comando riconfigura GitLab e lo protegge con Let's Encrypt SSL. Una volta completata correttamente la configurazione di GitLab, dovresti ottenere il seguente output:
* execute[reload prometheus] action run - execute /opt/gitlab/bin/gitlab-ctl hup prometheus Recipe: monitoring::alertmanager * runit_service[alertmanager] action restart (up to date) Recipe: monitoring::postgres-exporter * runit_service[postgres-exporter] action restart (up to date) Recipe: monitoring::grafana * runit_service[grafana] action restart (up to date) Recipe: nginx::enable * execute[reload nginx] action run - execute gitlab-ctl hup nginx Recipe: letsencrypt::enable * ruby_block[display_le_message] action run - execute the ruby block display_le_message Recipe: crond::enable * runit_service[crond] action restart (up to date) Running handlers: Running handlers complete Chef Client finished, 609/1641 resources updated in 10 minutes 43 seconds Warnings: Environment variable LANG specifies a non-UTF-8 locale. GitLab requires UTF-8 encoding to function properly. Please check your locale settings. gitlab Reconfigured!
Fase 4:accedi all'interfaccia utente Web di GitLab
A questo punto, GitLab è installato e configurato e ora puoi accedere all'interfaccia utente di GitLab visitando l'URL https://gitlab.example.com. Verrai reindirizzato alla schermata di modifica della password come mostrato di seguito:
Imposta la nuova password per l'utente root e fai clic su Cambia tuo password pulsante. Una volta che la password è stata modificata correttamente, dovresti vedere la schermata di accesso di GitLab:
Inserisci root come nome utente, la password specificata e fai clic su Firma dentro pulsante. Dovresti vedere la dashboard di GitLab nella schermata seguente:
Passaggio 5 – Disattiva registrazione utente
Per disabilitare la registrazione utente, fai clic su Amministratore area come mostrato di seguito:
Ora, fai clic su Impostazioni nel riquadro di sinistra. Dovresti vedere la seguente pagina:
Successivamente, Espandi le restrizioni di registrazione. Dovresti vedere la seguente pagina:
Quindi, deseleziona il pulsante Registrati abilitato per disabilitare la registrazione dell'utente nella pagina di benvenuto di GitLab e fai clic su Salva Modifiche pulsante.
Quindi, esci dalla dashboard di GitLab. Dovresti vedere la seguente schermata:
Come puoi vedere, manca la scheda per la registrazione degli utenti.
Passaggio 6:automatizza il backup di GitLab
Puoi eseguire un backup completo dei dati GitLab con il seguente comando:
gitlab-rake gitlab:backup:create
Questo comando eseguirà un backup completo dei dati GitLab e lo salverà nella directory /var/opt/gitlab/backups. Una volta che il backup è stato completato con successo, dovresti ottenere il seguente output:
2020-03-22 10:59:34 -0400 -- Dumping database ... Dumping PostgreSQL database gitlabhq_production ... [DONE] 2020-03-22 10:59:37 -0400 -- done 2020-03-22 10:59:37 -0400 -- Dumping repositories ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping uploads ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping builds ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping artifacts ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping pages ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping lfs objects ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping container registry images ... 2020-03-22 10:59:38 -0400 -- done Creating backup archive: 1584889178_2020_03_22_12.9.0_gitlab_backup.tar ... done Uploading backup archive to remote storage ... skipped Deleting tmp directories ... done done done done done done done done done Deleting old backups ... skipping Backup task is done.
Si consiglia di pianificare i backup con Cron in modo da non dover eseguire backup regolarmente.
Puoi pianificare i backup modificando il seguente file:
nano /etc/crontab
Aggiungi la seguente riga per eseguire il backup dei dati GitLab ogni giorno alle 20:00:
0 20 * * * gitlab-rake gitlab:backup:create
Salva e chiudi il file quando hai finito.
Conclusione
Congratulazioni! Hai installato e configurato correttamente GitLab CE sul server CentOS 8. Ora puoi ospitare il tuo repository con GitLab e iniziare a collaborare con altri sviluppatori oggi con GitLab su un VPS con Atlantic.Net!