Depuis l'acquisition de GitHub par Microsoft, plusieurs développeurs ont prévu de migrer leurs propres référentiels de code de github.com vers une autre solution auto-hébergée. GitLab Community Edition (CE) est le choix le plus courant.
En tant que solution sophistiquée et flexible, GitLab CE peut être déployé à l'aide de différentes méthodes, mais seule la méthode officiellement recommandée, l'installation du package Omnibus, sera couverte ici.
Conditions préalables
- Une nouvelle instance de serveur Vultr Ubuntu 18.04 LTS x64 avec au moins 4 Go de mémoire. 8 Go ou plus est recommandé pour desservir jusqu'à 100 utilisateurs. Supposons que son adresse IPv4 soit
203.0.113.1
.
- Un utilisateur sudo .
- Un domaine
gitlab.example.com
pointé vers l'instance mentionnée ci-dessus.
Remarque: lors du déploiement sur votre propre instance de serveur, veillez à remplacer toutes les valeurs d'exemple par des valeurs réelles.
Lancez un terminal SSH et connectez-vous à votre instance de serveur Ubuntu 18.04 LTS x64 en tant qu'utilisateur sudo.
Ajouter une partition de swap et modifier le paramètre de swapiness
Lors du déploiement de GitLab CE 11.x sur une machine avec 4 Go de mémoire, il est nécessaire de configurer une partition de swap de 4 Go pour un bon fonctionnement:
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
Remarque: Si vous utilisez une taille de serveur différente, la taille de la partition de swap peut varier.
Pour des raisons de performances du système, il est recommandé de configurer le paramètre de permutation du noyau sur une valeur faible comme 10
:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness
La sortie de la cat
commande sera 10
.
Configurez le nom d'hôte de la machine et le nom de domaine complet (FQDN)
Utilisez les commandes suivantes pour configurer un nom d'hôte gitlab
, et un nom de domaine complet gitlab.example.com
, pour la machine:
sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts
Vous pouvez confirmer les résultats:
hostname
hostname -f
Modifier les règles du pare-feu
Autoriser le trafic SSH, HTTP et HTTPS entrant
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Mettre à jour le système
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Pendant la mise à niveau, vous pouvez être informé que la version actuellement installée du fichier de configuration grub a été modifiée localement. Puisque nous ne sommes en fait pas responsables de la modification, utilisez la UPflèche pour mettre en surbrillance l' install the package maintainer's version
option, puis appuyez sur ENTER.
Lorsque le système est de nouveau opérationnel, reconnectez-vous en tant que même utilisateur sudo pour continuer.
Étape 2: installer les dépendances requises
Avant d'installer GitLab CE, vous devez installer les dépendances requises:
sudo apt install -y curl openssh-server ca-certificates
De plus, si vous souhaitez utiliser Postfix pour envoyer des messages de notification, vous devez installer Postfix:
sudo apt install -y postfix
Pendant l'installation, un écran de configuration peut apparaître:
- Appuyez sur TABpour mettre en surbrillance le
<OK>
bouton sur le premier écran, puis appuyez sur ENTER.
- Sélectionnez
Internet Site
et appuyez sur ENTER.
- Pour le
mail name
champ, saisissez le nom de domaine complet de votre serveur gitlab.example.com
et appuyez sur ENTER.
- Si d'autres écrans apparaissent, appuyez sur ENTERpour accepter les paramètres par défaut.
Démarrez et activez le service Postfix:
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
Modifiez les règles de pare-feu pour Postfix:
sudo ufw allow Postfix
sudo ufw allow 'Postfix SMTPS'
sudo ufw allow 'Postfix Submission'
Après avoir installé Postfix, vous devez configurer Postfix en modifiant son fichier de configuration principal /etc/postfix/main.cf
conformément aux paramètres réels de votre serveur.
Remarque: En plus des instructions ci-dessus, vous devez soumettre un ticket de support pour annuler le blocage par défaut de Vultr sur le port SMTP 25.
Alternativement, si vous souhaitez utiliser une autre solution de messagerie, ignorez simplement l'installation de Postfix et choisissez d'utiliser un serveur SMTP externe après l'installation de GitLab CE.
Étape 3: configurer le référentiel GitLab APT, puis installer GitLab CE
Configurez le référentiel GitLab CE APT sur votre système:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Ensuite, installez GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce
L'installation peut prendre un certain temps.
Enfin, pointez votre navigateur Web préféré sur http://gitlab.example.com
, puis soumettez un nouveau mot de passe lorsque vous y êtes invité pour terminer l'installation.
À partir de maintenant, utilisez les informations d'identification suivantes pour vous connecter en tant qu'administrateur:
- Nom d'utilisateur:
root
- Mot de passe:
<your-new-password>
Étape 4: Activez l'accès HTTPS en intégrant un certificat SSL Let's Encrypt
Pour l'instant, vous avez correctement installé GitLab CE 11.x sur votre instance de serveur et les utilisateurs peuvent déjà visiter le site en utilisant le protocole HTTP. Pour des raisons de sécurité, il est recommandé d'activer l'accès HTTPS à votre serveur GitLab en intégrant un certificat SSL Let's Encrypt.
Utilisez l' vi
éditeur pour ouvrir le fichier de configuration GitLab CE:
sudo vi /etc/gitlab/gitlab.rb
Trouvez les deux lignes suivantes:
external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts
Remplacez-les en conséquence:
external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']
Sauvegarder et quitter:
:wq!
Reconfigurez GitLab CE à l'aide des paramètres mis à jour:
sudo gitlab-ctl reconfigure
La reconfiguration peut prendre un certain temps.
Une fois la reconfiguration terminée, tous les utilisateurs seront obligés d'utiliser le protocole HTTPS lors de l'accès au site GitLab.
Remarque: après le passage de HTTP à HTTPS, les cookies hérités peuvent provoquer une erreur GitLab 422. L'effacement des cookies résout ce problème.