L'installation de GitLab Community Edition (CE) sur un serveur CentOS 7 nécessite une allocation de ressources adéquate. Il est fortement recommandé de provisionner au moins 4 Go de mémoire RAM pour garantir des performances stables et éviter les interruptions de service.
Préparation de l'environnement
Avant de déployer l'application, assurez-vous que les dépendances fondamentales, notamment le démon SSH et le serveur de transfert de courrier Postfix, sont correctement installés et actifs.
sudo yum install -y curl policycoreutils-python openssh-server postfix
sudo systemctl enable --now sshd
sudo systemctl enable --now postfix
Ouvrez ensuite les ports nécessaires dans le pare-feu pour autoriser le trafic HTTP, HTTPS et SSH :
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
Téléchargement et installation du paquet RPM
Pour contourner les éventuels problèmes de latence réseau avec les dépôts internationaux, l'utilisation d'un miroir local (comme celui de l'Université Tsinghua) est une excellente alternative. Créez un répertoire de travail dédié et téléchargez l'archive RPM :
mkdir -p /opt/gitlab-deploy && cd /opt/gitlab-deploy
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.11.13-ce.0.el7.x86_64.rpm
Procédez ensuite à l'installation locale du paquet à l'aide du gestionnaire RPM :
sudo rpm -ivh gitlab-ce-15.11.13-ce.0.el7.x86_64.rpm
Configuration initiale
Une fois l'installation terminée, l'instance n'est pas encore opérationnelle. Vous devez modifier le fichier de configuration principal pour définir l'URL externe de votre instance :
sudo vi /etc/gitlab/gitlab.rb
Décommentez et modifiez la ligne external_url pour y insérer l'adresse IP ou le nom de domaine de votre serveur :
external_url 'http://gitlab.votre-domaine.local'
Appliquez la nouvelle configuration. Cette commande va générer les fichiers nécessaires et initialiser les bases de données intégrées :
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
Vérification réseau et accès
Validez que le serveur web intégré (Nginx) écoute correctement sur les ports attendus en utilisant l'outil moderne ss :
sudo ss -tunlp | grep -E ':(80|443|8080)\s'
Si le pare-feu firewalld bloque toujours l'accès au port 80, ajoutez la règle explicitement :
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Accédez à l'interface via votre navigateur web en utilisant l'URL configurée précédemment. Lors de la première connexion, le système vous demandera de définir un nouveau mot de passe pour le compte administrateur root (un minimum de 8 caractères est requis). Une fois authentifié, vous pourrez configurer les utilisateurs, générer des clés SSH et initialiser vos premiers dépôts.
Méthode alternative : Script d'instalation officiel
Il est également possible d'utiliser le script fourni par l'infrastructure de GitLab. Cette méthode configure automatiquement le dépôt YUM sur la machine cible :
cd /tmp
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install -y gitlab-ce
Cependant, selon la localisation géographique de votre serveur, l'exécution de ce script peut échouer avec une erreur de type Timeout (délai d'attente dépassé) lors de la tentative de résolution des dépôts Amazon S3 sous-jacents. Si cette situation se présente, la méthode manuelle via le téléchargement direct du RPM sur un miroir local reste la solution la plus fiable.