Installer Gitlab sur Linux (RHEL, Alma Linux)
Table des matières
Dans cet article, on va voir comment installer GitLab, hébergé sur notre propre machine.
Cet article résume les étapes de la documentation de GitLab et je complète celui-ci avec la connexion à un annuaire LDAP (Active Directory).
Cet article a été réalisé sur RHEL 9, et a été vérifié en live sur Twitch sur Alma Linux 9 !
Il y a plusieurs méthodes d'installation, j'ai choisi la méthode Omnibus qui consiste à installer la plateforme depuis le dépôt de GitLab avec ses paquets RPM.
On partira sur Gitlab CE (Comunity Edition)
Toutes les commandes de cet article seront réalisées en root.
La plateforme nécessite 8vCPU et 16Go de RAM pour gérer 20 requêtes par secondes pour 1000 utilisateurs.
Le minimum pour fonctionner convenablement semble être 2vCPU et 4Go de RAM.
Adaptez suivant l'usage.
Concernant l'usage disque, il est nécessaire d'avoir au moins 3Go de libre + 1.5Go pour récupérer le RPM.
La solution s'installant dans /opt/gitlab c'est ici qu'il est nécessaire d'avoir de la place !
Au niveau des dépôts, les dépôts de base sont suffisant, pas besoin d'EPEL :
SELinux peut rester actif, tout comme ifrewalld !
Il est conseillé d'avoir évidemment le système à jour :
Dans un premier temps, on va s'assurer que quelques prérequis sont installés :
Ensuite, on va installer le dépôt via le script fourni par GitLab :
Le script va installer les dépôts, importer les clés GPG et tout ce qui va bien.
Ensuite, on pourra installer le paquet gitlab-ce :
On pourra passer des variables d'environnement pour faire une demande de certificat à Lets Encrypt mais le serveur doit être directement connecté à Internet comme ceci par exemple :
Une fois installé, on passe au paramétrage !
On ouvrira le firewalld en http et https pour la suite :
On va éditer le fichier /etc/gitlab/gitlab.rb pour compléter les paramètres essentiels :
On va paramétrer la valeur external_url pour accéder à notre GitLab :
On peut, si on le souhaite, d'ores et déjà paramétrer d'autres éléments.
Une fois fait, on démarre l'instance gitlab, prenant en compte la configuration :
Le premier parémétrage est long, mais les reconfigurations suivantes sont plus rapide.
Le mot de passe pour l'utilisateur root est généré lors de ce premier démarrage.
On le notera, il est stocké dans /etc/gitlab/initial_root_password
A partir de là, on pourra se connecter via l'adresse du serveur en https :
On pourra ensuite administrer la plateforme via les paramètres d'administration :
Si on souhaite connecter la plateforme à un annuaire LDAP Active Directory, il faudra modifier le fichier /etc/gitlab/gitlab.rb :
Dans la plateforme de test, je n'ai pas de LDAPS, cependant, voici une configuration fonctionnelle en LDAP :
Dans cet exemple, les Utilisateurs de l'arborescence LT/Utilisateurs pourront se connecter (user_filter et base)
Pour me connecter au LDAP, j'utilise le compte gitlab_svc
Une fois la config éditée, on relance le fameux :
Ensuite, on peut se connecter avec notre login LDAP :
Et notre compte est bien présent, les attributs LDAP sont remontés :
Introduction
Dans cet article, on va voir comment installer GitLab, hébergé sur notre propre machine.
Cet article résume les étapes de la documentation de GitLab et je complète celui-ci avec la connexion à un annuaire LDAP (Active Directory).
Cet article a été réalisé sur RHEL 9, et a été vérifié en live sur Twitch sur Alma Linux 9 !
Il y a plusieurs méthodes d'installation, j'ai choisi la méthode Omnibus qui consiste à installer la plateforme depuis le dépôt de GitLab avec ses paquets RPM.
On partira sur Gitlab CE (Comunity Edition)
Toutes les commandes de cet article seront réalisées en root.
Prérequis
La plateforme nécessite 8vCPU et 16Go de RAM pour gérer 20 requêtes par secondes pour 1000 utilisateurs.
Le minimum pour fonctionner convenablement semble être 2vCPU et 4Go de RAM.
Adaptez suivant l'usage.
Concernant l'usage disque, il est nécessaire d'avoir au moins 3Go de libre + 1.5Go pour récupérer le RPM.
La solution s'installant dans /opt/gitlab c'est ici qu'il est nécessaire d'avoir de la place !
Au niveau des dépôts, les dépôts de base sont suffisant, pas besoin d'EPEL :
Code TEXT :
rhel-9-for-x86_64-appstream-rpms Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) rhel-9-for-x86_64-baseos-rpms Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)
SELinux peut rester actif, tout comme ifrewalld !
Il est conseillé d'avoir évidemment le système à jour :
Code BASH :
dnf upgrade
Installation
Dans un premier temps, on va s'assurer que quelques prérequis sont installés :
Code BASH :
dnf install curl policycoreutils openssh-server perl
Ensuite, on va installer le dépôt via le script fourni par GitLab :
Code BASH :
wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh
Code BASH :
bash script.rpm.sh
Le script va installer les dépôts, importer les clés GPG et tout ce qui va bien.
Ensuite, on pourra installer le paquet gitlab-ce :
Code BASH :
dnf install -y gitlab-ce
On pourra passer des variables d'environnement pour faire une demande de certificat à Lets Encrypt mais le serveur doit être directement connecté à Internet comme ceci par exemple :
Code BASH :
EXTERNAL_URL="https://gitlab.linuxtricks.fr" dnf install -y gitlab-ce
Une fois installé, on passe au paramétrage !
Paramétrage
On ouvrira le firewalld en http et https pour la suite :
Code BASH :
firewall-cmd --add-service=http --permanent firewall-cmd --add-service=https --permanent firewall-cmd --reload
On va éditer le fichier /etc/gitlab/gitlab.rb pour compléter les paramètres essentiels :
Code BASH :
vim /etc/gitlab/gitlab.rb
On va paramétrer la valeur external_url pour accéder à notre GitLab :
Code :
external_url 'https://srv221053.linuxtrickstest.lan'
On peut, si on le souhaite, d'ores et déjà paramétrer d'autres éléments.
Une fois fait, on démarre l'instance gitlab, prenant en compte la configuration :
Code BASH :
gitlab-ctl reconfigure
Le premier parémétrage est long, mais les reconfigurations suivantes sont plus rapide.
Le mot de passe pour l'utilisateur root est généré lors de ce premier démarrage.
On le notera, il est stocké dans /etc/gitlab/initial_root_password
A partir de là, on pourra se connecter via l'adresse du serveur en https :
On pourra ensuite administrer la plateforme via les paramètres d'administration :
Connexion Active Directory
Si on souhaite connecter la plateforme à un annuaire LDAP Active Directory, il faudra modifier le fichier /etc/gitlab/gitlab.rb :
Code BASH :
vim /etc/gitlab/gitlab.rb
Dans la plateforme de test, je n'ai pas de LDAPS, cependant, voici une configuration fonctionnelle en LDAP :
Code RUBY :
itlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = { 'main' => { 'label' => 'LDAP', 'host' => 'linuxtrickstest.lan', 'port' => 389, 'uid' => 'sAMAccountName', 'bind_dn' => 'CN=gitlab_svc,OU=Compte_De_Service,OU=LT,DC=linuxtrickstest,DC=lan', 'password' => 'Git@1234', 'encryption' => 'plain', 'verify_certificates' => false, 'timeout' => 10, 'active_directory' => true, 'user_filter' => '(objectclass=user)', 'base' => 'OU=Utilisateurs,OU=LT,DC=linuxtrickstest,DC=lan', 'lowercase_usernames' => 'false', 'retry_empty_result_with_codes' => [80], 'allow_username_or_email_login' => false, 'block_auto_created_users' => false } }
Dans cet exemple, les Utilisateurs de l'arborescence LT/Utilisateurs pourront se connecter (user_filter et base)
Pour me connecter au LDAP, j'utilise le compte gitlab_svc
Une fois la config éditée, on relance le fameux :
Code BASH :
gitlab-ctl reconfigure
Ensuite, on peut se connecter avec notre login LDAP :
Et notre compte est bien présent, les attributs LDAP sont remontés :