Sommaire
Présentation
Dans ce tutoriel, nous allons installer et configurer GitLab pour gérer et versionner du code.
Nous installerons GitLab CE (Community Edition) à ne pas confondre avec GitLab EE (Enterprise Edition).
Ce tutoriel est prévu pour Debian 12 et Ubuntu Server 24.04.
Dans ce tutoriel, GitLab sera installé sur un serveur virtuel Proxmox VE (PVE) mais il est également possible de l’installer sur un Serveur Privé Virtuel (VPS).
1) Prérequis
- Le paquet sudo doit être installé
2) Installation des dépendances
2.1) Mettre à jour le cache apt
1 |
sudo apt update -y |
2.2) Installer les dépendances
1 |
sudo apt install -y curl openssh-server ca-certificates perl |
3) Installation de gitlab-ce
Nous installerons GitLab CE qui est la version gratuite.
Différence entre GitLab CE et GitLab EE.
3.1) Ajout du dépôt gitlab-ce
1 |
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash |
3.2) Installer gitlab-ce
1 |
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ce |
Important : L’URL spécifiée dans la ligne de commande doit aboutir (depuis l’extérieur) sur votre serveur GitLab. Si ce n’est pas le cas, Let’s Encrypt ne pourra pas être activé pour générer automatiquement votre certificat SSL.
Remarque : Spécifiez une URL de type http au lieu de https pour que Let’s Encrypt ne soit pas activé sur le serveur. Cela peut être pratique si vous gérez vos certificats directement depuis votre reverse proxy.
Exemples : http://192.168.1.101 ou http://gitlab.jjworld.fr.
Fin d’installation.
3.3) Accéder à GitLab
Utilisez l’url spécifiée dans la ligne de commande d’installation pour vous connecter à votre instance GitLab (Ex : https://gitlab.example.com ou http://192.168.1.101).
Connectez-vous avec l’utilisateur « root » pour la toute 1ère connexion.
3.4) Récupérer le mot de passe root dans GitLab
A la fin de l’installation, un mot de passe aléatoire a été généré pour l’utilisateur root.
Ce mot de passe est renseigné dans un fichier initial_root_password
.
Pour l’afficher, lancez la commande suivante :
1 |
sudo cat /etc/gitlab/initial_root_password |
Important : Pour des questions de sécurité, il est important de supprimer le fichier initial_root_password
et de modifier le mot de passe de l’utilisateur root dans GitLab.
3.5) Supprimer le fichier contenant le mot de passe initial
Pour les raisons citées plus haut, supprimez le fichier contenant le mot de passe de l’utilisateur root.
1 |
sudo rm /etc/gitlab/initial_root_password |
3.6) Modifier le mot de passe root
Le mot de passe de l’utilisateur root pourrait avoir été consulté par une personne non autorisée.
C’est pourquoi, il est vivement conseillé de changer le mot de passe de l’utilisateur root.
Le mot de passe d’un utilisateur GitLab peut être modifié en ligne de commande ou depuis l’interface web.
3.6.1) Réinitialiser le mot de passe de root dans GitLab en ligne de commande
1 |
sudo gitlab-rake "gitlab:password:reset[root]" |
3.6.2) Réinitialiser le mot de passe de root dans GitLab depuis l’interface web
Cliquez sur l’avatar en haut à droite du panneau latéral gauche puis cliquez sur « Edit profile ».
Cliquez sur « Password » dans le panneau de gauche puis remplir le formulaire pour modifier le mot de passe de l’utilisateur.
Cliquez sur « Save password ».
Reconnectez-vous avec le nouveau mot de passe.
3.6) Désactivation des demandes d’inscription des nouveaux utilisateurs
Par défaut, l’inscription de nouveaux utilisateurs est activée.
Désactivez cette fonctionnalité pour éviter d’avoir des demandes d’inscription non-désirées.
Cliquez sur « Admin » en bas à droite dans le panneau de gauche.
Cliquez sur « Settings » puis « General » dans le panneau de gauche.
Rendez-vous dans la section « Sign-up restrictions » puis décochez la case « Sign-up enabled ».
Descendez puis cliquez sur « Save changes ».
4) Création d’un utilisateur dans GitLab
Nous allons maintenant créer un nouvel utilisateur pour nous connecter à l’interface web de GitLab et réaliser des opérations sur les futurs dépôts.
4.1) Créer un nouvel utilisateur
Cliquez sur « Admin » en bas à droite du panneau de gauche.
Cliquez sur « Users » à gauche puis sur « New user » à droite.
Remplissez le formulaire avec les informations du nouvel utilisateur.
Sélectionnez un niveau d’accès à l’instance GitLab dans la section « Access level ».
Dans mon cas, je souhaite que l’utilisateur soit Administrateur.
Cliquez sur « Create user ».
4.2) Modifier le mot de passe d’un utilisateur GitLab
L’utilisateur recevra un mail lui permettant de se connecter pour ensuite redéfinir son mot de passe (à condition que la configuration mail de GitLab soit correcte).
Si ce n’est pas le cas, nous verrons un peu plus loin comment configurer les envois de mail.
En attendant, nous allons définir un mot de passe temporaire que nous communiquerons à l’utilisateur.
4.2.1) Réinitialiser le mot de passe d’un utilisateur GitLab en ligne de commande
1 |
sudo gitlab-rake "gitlab:password:reset[myUserName]" |
4.2.2) Réinitialiser le mot de passe d’un utilisateur GitLab depuis l’interface web
Cliquez sur « Admin » puis « Users ».
Cliquez sur le bouton « Edit » correspondant à l’utilisateur.
Définissez un mot de passe temporaire.
Reconnectez-vous avec le nouvel utilisateur.
Lors de sa 1ère connexion, l’utilisateur sera invité à changer son mot de passe.
4.3) Créer un token d’authentification pour l’utilisateur
Les tokens d’authentification permettent à une application de s’authentifier sur l’instance GitLab.
Ils ont une date d’expiration, permettent une gestion fine des droits et peuvent être révoqués en cas de compromission sans devoir changer le mot de passe de l’utilisateur.
Cliquez sur l’avatar en haut à droite du panneau de gauche puis cliquez sur « Edit profile ».
Cliquez sur « Access tokens » puis « Add new token ».
Définissez un nom et une date d’expiration pour le token.
Cochez les cases pour attribuer des droits avec plus ou moins de granularité.
Cliquez sur « Create personal access token » tout en bas.
Remarque : Pour plus d’information sur les niveaux de droit d’un token : Personal access token scopes.
Le token est visible temporairement, conservez le précieusement.
5) Créer un nouveau groupe dans GitLab
Nous allons créer un nouveau groupe dans GitLab qui contiendra nos dépôts.
Cliquez sur le « + » en haut à droite dans le panneau de gauche puis cliquez sur « New group ».
Cliquez sur « Create group ».
Choisissez un nom de groupe « Group name » et un niveau de visibilité « Visibility level ».
Cliquez sur « Create group ».
6) Création d’un dépôt dans GitLab
Nous allons maintenant créer un dépôt dans GitLab pour versionner notre code.
6.1) Créer un dépôt dans GitLab
Cliquez sur le « + » en haut à droite du panneau de gauche puis cliquez sur « New project/repository ».
Cliquez sur « Create blank project ».
Définissez un nom pour le dépôt « Project name » et sélectionnez le groupe qui le contiendra.
Sélectionnez le niveau de visibilité « Visibility Level ».
Cliquez sur « Create project ».
Le dépôt est maintenant créé.
7) Cloner un dépôt
7.1) Installer git (Windows)
1 |
winget install git.git |
7.2) Installer git (Linux)
1 |
sudo apt install -y git |
7.3) Cloner le dépôt
7.3.1) Récupérez l’url du dépôt dans GitLab
Copiez la ligne « Clone with HTTP ».
7.3.2) Cloner le dépôt
1 |
git clone https://gitlab.jjworld.fr/jjworld/testproject.git . |
Remarque : La commande précédente clone le dépôt dans le répertoire courant. Remplacez « . » par un chemin pour cloner le dépôt dans un répertoire spécifique.
7.4) Authentification
Si le dépôt est privé, une authentification sera demandée.
7.4.1) En interactif dans l’invite de commande
Renseignez le nom d’utilisateur et le token généré précédemment.
7.4.2) Avec Git Credential Manager si vous disposez d’une interface graphique
Renseignez le nom d’utilisateur et le token généré précédemment.
Le dépôt est cloné.
8) Configuration mail GitLab
8.1) Modifier le fichier de configuration de GitLab
1 |
sudo nano /etc/gitlab/gitlab.rb |
Rechercher la section « GitLab email server settings » dans le fichier.
Contenu :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.mydomain.fr" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "gitlab@mydomain.fr" gitlab_rails['smtp_password'] = "mySMTPPassword" gitlab_rails['smtp_domain'] = "mydomain.fr" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_pool'] = false gitlab_rails['gitlab_email_from'] = 'gitlab@mydomain.fr' gitlab_rails['gitlab_email_display_name'] = 'GitLab Jj World' gitlab_rails['gitlab_email_reply_to'] = 'noreply@mydomain.fr' |
Remarque : Quelques exemples pour d’autres solutions de messagerie (Ex : Gmail) : Exemple de configuration mail dans GitLab.
8.2) Recharger la configuration de GitLab
1 |
sudo gitlab-ctl reconfigure |
8.3) Tester le bon fonctionnement
8.3.1) Lancer la console GitLab
1 |
sudo gitlab-rails console |
8.3.2) Patienter jusqu’à l’apparition de cette sortie
8.3.3) Lancer le test d’envoi de mail
1 |
Notify.test_email('jean@mydomain.fr', 'Message Subject', 'Message Body').deliver_now |
Résultats :
Boite mail :
GitLab est désormais en mesure d’envoyer des notifications notamment en cas d’inscription d’un nouvel utilisateur.
Voilà ! C’est terminé !
Vous pouvez maintenant versionner votre code grâce à GitLab.
Il ne reste plus qu’à :
- Créer vos utilisateurs.
- Créer vos groupes de dépôts.
- Créer et gérer vos dépôts.
- Faire un don pour soutenir notre travail.
En savoir plus sur Jj World
Subscribe to get the latest posts sent to your email.
Laisser un commentaire