Da quando GitHub è stato acquisito da Microsoft, alcuni sviluppatori hanno pianificato di migrare i propri repository di codice da github.com a una soluzione alternativa ospitata autonomamente. GitLab Community Edition (CE) è la scelta più comune.
Come soluzione sofisticata e flessibile, GitLab CE può essere implementato utilizzando vari metodi, ma qui sarà coperto solo il metodo ufficialmente raccomandato, l'installazione del pacchetto Omnibus.
Prerequisiti
- Una nuova istanza del server x64 LTS di Vultr Ubuntu 18.04 con almeno 4 GB di memoria. 8 GB o più sono consigliati per servire fino a 100 utenti. Dì che il suo indirizzo IPv4 è
203.0.113.1
.
- Un utente sudo .
- Un dominio
gitlab.example.com
puntato verso l'istanza sopra menzionata.
Nota: durante la distribuzione sulla propria istanza del server, assicurarsi di sostituire tutti i valori di esempio con quelli effettivi.
Avvia un terminale SSH e accedi all'istanza del tuo server Ubuntu 18.04 LTS x64 come utente sudo.
Aggiungi una partizione di swap e modifica le impostazioni di swapiness
Quando si distribuisce GitLab CE 11.x su una macchina con 4 GB di memoria, è necessario configurare una partizione di scambio da 4 GB per un funzionamento regolare:
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
Nota: se si utilizza una dimensione del server diversa, la dimensione della partizione di swap può variare.
Ai fini delle prestazioni del sistema, si consiglia di configurare le impostazioni di swappiness del kernel su un valore basso come 10
:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness
L'output del cat
comando sarà 10
.
Imposta il nome host e il nome dominio completo (FQDN) della macchina
Utilizzare i comandi seguenti per impostare un nome host gitlab
e un FQDN gitlab.example.com
per la macchina:
sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts
Puoi confermare i risultati:
hostname
hostname -f
Modifica le regole del firewall
Consenti traffico SSH, HTTP e HTTPS in entrata
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Aggiorna il sistema
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Durante l'aggiornamento, potresti essere informato che la versione attualmente installata del file di configurazione di grub è stata modificata localmente. Poiché in realtà non siamo responsabili della modifica, utilizzare la UPfreccia per evidenziare l' install the package maintainer's version
opzione, quindi premere ENTER.
Quando il sistema è di nuovo funzionante, accedere nuovamente come lo stesso utente sudo per andare avanti.
Passaggio 2: installare le dipendenze richieste
Prima di installare GitLab CE, è necessario installare le dipendenze richieste:
sudo apt install -y curl openssh-server ca-certificates
Inoltre, se si desidera utilizzare Postfix per inviare messaggi di notifica, è necessario installare Postfix:
sudo apt install -y postfix
Durante l'installazione, potrebbe apparire una schermata di configurazione:
- Premere TABper evidenziare il
<OK>
pulsante nella prima schermata, quindi premere ENTER.
- Seleziona
Internet Site
e premi ENTER.
- Per il
mail name
campo, immettere l'FQDN del server gitlab.example.com
e premere ENTER.
- Se vengono visualizzate altre schermate, premere ENTERper accettare le impostazioni predefinite.
Avviare e abilitare il servizio Postfix:
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
Modifica le regole del firewall per Postfix:
sudo ufw allow Postfix
sudo ufw allow 'Postfix SMTPS'
sudo ufw allow 'Postfix Submission'
Dopo aver installato Postfix, è necessario configurare Postfix modificando il file di configurazione principale /etc/postfix/main.cf
in base alle impostazioni del server effettive.
Nota: oltre alle istruzioni precedenti, è necessario inviare un ticket di supporto per annullare il blocco predefinito di Vultr sulla porta SMTP 25.
In alternativa, se si desidera utilizzare un'altra soluzione di messaggistica, saltare l'installazione di Postfix e scegliere di utilizzare un server SMTP esterno dopo l'installazione di GitLab CE.
Passaggio 3: installare il repository APT GitLab e quindi installare GitLab CE
Configura il repository APT GitLab CE sul tuo sistema:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Quindi, installa GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce
L'installazione potrebbe richiedere alcuni minuti.
Infine, punta il tuo browser Web preferito a http://gitlab.example.com
, quindi invia una nuova password come richiesto per completare l'installazione.
D'ora in poi, utilizzare le seguenti credenziali per accedere come amministratore:
- Nome utente:
root
- Parola d'ordine:
<your-new-password>
Passaggio 4: abilitare l'accesso HTTPS integrando un certificato SSL Let's Encrypt
Per ora, GitLab CE 11.x è stato installato correttamente sull'istanza del server e gli utenti possono già visitare il sito utilizzando il protocollo HTTP. Per motivi di sicurezza, si consiglia di abilitare l'accesso HTTPS al server GitLab integrando un certificato SSL Let's Encrypt.
Utilizzare l' vi
editor per aprire il file di configurazione di GitLab CE:
sudo vi /etc/gitlab/gitlab.rb
Trova le seguenti due righe:
external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts
Sostituirli di conseguenza:
external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']
Salva ed esci:
:wq!
Riconfigurare GitLab CE utilizzando le impostazioni aggiornate:
sudo gitlab-ctl reconfigure
La riconfigurazione potrebbe richiedere del tempo.
Al termine della riconfigurazione, tutti gli utenti saranno costretti a utilizzare il protocollo HTTPS quando accedono al sito GitLab.
Nota: dopo il passaggio da HTTP a HTTPS, i cookie legacy possono causare un errore GitLab 422. La cancellazione dei cookie risolve questo problema.