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 Vultr CentOS 7 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 CentOS 7 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
cat <<EOF | sudo tee /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 gitlab.example.com gitlab
EOF
Puoi confermare i risultati:
hostname
hostname -f
Modifica le regole del firewall
Consenti traffico HTTP e HTTPS in entrata:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service
Installare il repository EPEL YUM e quindi aggiornare il sistema
sudo yum install -y epel-release
sudo yum -y update && sudo shutdown -r now
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 yum install -y curl policycoreutils-python openssh-server openssh-clients
Inoltre, se si desidera utilizzare Postfix per inviare messaggi di notifica, è necessario installare Postfix e modificare le regole del firewall come segue:
sudo yum install -y postfix
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-service=pop3
sudo firewall-cmd --permanent --add-service=imap
sudo firewall-cmd --permanent --add-service=smtps
sudo firewall-cmd --permanent --add-service=pop3s
sudo firewall-cmd --permanent --add-service=imaps
sudo firewall-cmd --reload
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 RPM di GitLab e quindi installare GitLab CE
Imposta il repository RPM di GitLab CE sul tuo sistema:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
Quindi, installa GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" yum 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 credenziali di seguito 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!
Eseguire il comando seguente per riconfigurare GitLab CE utilizzando le impostazioni aggiornate:
sudo gitlab-ctl reconfigure
La riconfigurazione richiederà 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.