Comment installer et configurer GitLab sur Ubuntu 18.04

De Get Docs
Aller à :navigation, rechercher

Introduction

GitLab CE, ou Community Edition, est une application open source principalement utilisée pour héberger des référentiels Git, avec des fonctionnalités supplémentaires liées au développement, telles que le suivi des problèmes. Il est conçu pour être hébergé à l'aide de votre propre infrastructure et offre une flexibilité de déploiement en tant que magasin de référentiel interne pour votre équipe de développement, un moyen public d'interface avec les utilisateurs ou un moyen pour les contributeurs d'héberger leurs propres projets.

Le projet GitLab facilite la configuration d'une instance GitLab sur votre propre matériel avec un mécanisme d'installation simple. Dans ce guide, nous expliquerons comment installer et configurer GitLab sur un serveur Ubuntu 18.04.

Conditions préalables

Pour ce tutoriel, vous aurez besoin de :

Les configurations matérielles GitLab publiées recommandent d'utiliser un serveur avec :

  • 2 noyaux
  • 8 Go de RAM

Bien que vous puissiez vous débrouiller en substituant de l'espace d'échange à la RAM, cela n'est pas recommandé. Pour ce guide, nous supposerons que vous disposez au minimum des ressources ci-dessus.

  • Un nom de domaine pointé vers votre serveur. Pour plus d'informations, consultez notre documentation sur la façon de démarrer avec DNS sur DigitalOcean . Ce tutoriel utilisera le nom de domaine example.com.

Étape 1 - Installation des dépendances

Avant de pouvoir installer GitLab lui-même, il est important d'installer certains des logiciels qu'il exploite lors de l'installation et de manière continue. Heureusement, tous les logiciels requis peuvent être facilement installés à partir des référentiels de packages par défaut d'Ubuntu.

Comme c'est la première fois que nous utilisons apt au cours de cette session, nous pouvons actualiser l'index de package local, puis installer les dépendances en tapant :

sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

Certains de ces logiciels sont probablement déjà installés. Pour l'installation postfix, sélectionnez Site Internet lorsque vous y êtes invité. Sur l'écran suivant, entrez le nom de domaine de votre serveur pour configurer la façon dont le système enverra le courrier.

Étape 2 - Installation de GitLab

Maintenant que les dépendances sont en place, nous pouvons installer GitLab lui-même. Il s'agit d'un processus simple qui exploite un script d'installation pour configurer votre système avec les référentiels GitLab.

Déplacez-vous dans le répertoire /tmp puis téléchargez le script d'installation :

cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

N'hésitez pas à examiner le script téléchargé pour vous assurer que vous êtes à l'aise avec les actions qu'il prendra. Vous pouvez également trouver une version hébergée du script ici :

less /tmp/script.deb.sh

Une fois que vous êtes satisfait de la sécurité du script, exécutez le programme d'installation :

sudo bash /tmp/script.deb.sh

Le script configurera votre serveur pour utiliser les référentiels gérés par GitLab. Cela vous permet de gérer GitLab avec les mêmes outils de gestion de packages que vous utilisez pour vos autres packages système. Une fois cette opération terminée, vous pouvez installer l'application GitLab réelle avec apt :

sudo apt install gitlab-ce

Cela installera les composants nécessaires sur votre système.

Étape 3 - Ajustement des règles du pare-feu

Avant de configurer GitLab, vous devrez vous assurer que vos règles de pare-feu sont suffisamment permissives pour autoriser le trafic Web. Si vous avez suivi le guide lié dans les prérequis, vous aurez un pare-feu ufw activé.

Affichez l'état actuel de votre pare-feu actif en saisissant :

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)

Comme vous pouvez le constater, les règles actuelles autorisent le trafic SSH, mais l'accès aux autres services est restreint. Puisque GitLab est une application Web, nous devrions autoriser l'accès HTTP. Étant donné que nous tirerons parti de la capacité de GitLab à demander et à activer un certificat TLS/SSL gratuit de Let's Encrypt, autorisons également l'accès HTTPS.

Le protocole de mappage de port pour HTTP et HTTPS est disponible dans le fichier /etc/services, nous pouvons donc autoriser ce trafic par nom. Si vous n'aviez pas déjà activé le trafic OpenSSH, vous devez également autoriser ce trafic maintenant :

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

Vérifiez à nouveau le ufw status ; vous devriez voir l'accès configuré à au moins ces deux services :

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)

La sortie ci-dessus indique que l'interface Web GitLab sera accessible une fois que nous aurons configuré l'application.

Étape 4 - Modification du fichier de configuration GitLab

Avant de pouvoir utiliser l'application, vous devez mettre à jour le fichier de configuration et exécuter une commande de reconfiguration. Commencez par ouvrir le fichier de configuration de Gitlab :

sudo nano /etc/gitlab/gitlab.rb

Près du haut se trouve la ligne de configuration external_url. Mettez-le à jour pour qu'il corresponde à votre domaine. Remplacez http par https pour que GitLab redirige automatiquement les utilisateurs vers le site protégé par le certificat Let's Encrypt :

/etc/gitlab/gitlab.rb

##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'

Ensuite, recherchez le paramètre letsencrypt['contact_emails']. Ce paramètre définit une liste d'adresses e-mail que le projet Let's Encrypt peut utiliser pour vous contacter en cas de problème avec votre domaine. C'est une bonne idée de décommenter et de remplir ceci afin que vous soyez au courant de tout problème :

/etc/gitlab/gitlab.rb

letsencrypt['contact_emails'] = ['[email protected]']

Enregistrez et fermez le fichier. Exécutez la commande suivante pour reconfigurer Gitlab :

sudo gitlab-ctl reconfigure

Cela initialisera GitLab en utilisant les informations qu'il peut trouver sur votre serveur. Il s'agit d'un processus entièrement automatisé, vous n'aurez donc pas à répondre à des invites. Le processus configurera également un certificat Let's Encrypt pour votre domaine.

Étape 5 - Exécution de la configuration initiale via l'interface Web

Avec GitLab en cours d'exécution et l'accès autorisé, nous pouvons effectuer une configuration initiale de l'application via l'interface Web.

Connexion pour la première fois

Visitez le nom de domaine de votre serveur GitLab dans votre navigateur Web :

https://example.com

Lors de votre première visite, vous devriez voir une invite initiale pour définir un mot de passe pour le compte administratif :

Dans l'invite de mot de passe initiale, fournissez et confirmez un mot de passe sécurisé pour le compte administratif. Cliquez sur le bouton Modifier votre mot de passe lorsque vous avez terminé.

Vous serez redirigé vers la page de connexion classique de GitLab :

Ici, vous pouvez vous connecter avec le mot de passe que vous venez de définir. Les identifiants sont :

  • Nom d'utilisateur : root
  • Mot de passe : [le mot de passe que vous avez défini]

Entrez ces valeurs dans les champs pour les utilisateurs existants et cliquez sur le bouton Connexion. Vous serez connecté à l'application et redirigé vers une page de destination qui vous invitera à commencer à ajouter des projets :

Vous pouvez maintenant apporter quelques modifications simples pour configurer GitLab comme vous le souhaitez.

Réglage de vos paramètres de profil

L'une des premières choses à faire après une nouvelle installation est d'améliorer la forme de votre profil. GitLab sélectionne des valeurs par défaut raisonnables, mais celles-ci ne sont généralement pas appropriées une fois que vous commencez à utiliser le logiciel.

Pour effectuer les modifications nécessaires, cliquez sur l'icône de l'utilisateur dans le coin supérieur droit de l'interface. Dans le menu déroulant qui apparaît, sélectionnez Paramètres :

Vous serez redirigé vers la section Profil de vos paramètres :

Ajustez le Nom et l'adresse Email de "Administrateur" et "admin@exemple.com" à quelque chose de plus précis. Le nom que vous sélectionnez sera affiché pour les autres utilisateurs, tandis que l'e-mail sera utilisé pour la détection d'avatar par défaut, les notifications, les actions Git via l'interface, etc.

Cliquez sur le bouton Mettre à jour les paramètres du profil en bas lorsque vous avez terminé :

Un e-mail de confirmation sera envoyé à l'adresse que vous avez fournie. Suivez les instructions de l'e-mail pour confirmer votre compte afin de pouvoir commencer à l'utiliser avec GitLab.

Modification du nom de votre compte

Ensuite, cliquez sur l'élément Compte dans la barre de menu de gauche :

Ici, vous pouvez trouver votre jeton API privé ou configurer l'authentification à deux facteurs. Cependant, la fonctionnalité qui nous intéresse pour le moment est la section Modifier le nom d'utilisateur.

Par défaut, le premier compte administratif porte le nom root. Comme il s'agit d'un nom de compte connu, il est plus sûr de le remplacer par un autre nom. Vous aurez toujours des privilèges administratifs ; la seule chose qui changera, c'est le nom. Remplacez root par votre nom d'utilisateur préféré :

Cliquez sur le bouton Mettre à jour le nom d'utilisateur pour effectuer la modification :

La prochaine fois que vous vous connecterez au GitLab, n'oubliez pas d'utiliser votre nouveau nom d'utilisateur.

Ajouter une clé SSH à votre compte

Dans la plupart des cas, vous souhaiterez utiliser des clés SSH avec Git pour interagir avec vos projets GitLab. Pour ce faire, vous devez ajouter votre clé publique SSH à votre compte GitLab.

Si vous avez déjà créé une paire de clés SSH sur votre ordinateur local, vous pouvez généralement afficher la clé publique en saisissant :

cat ~/.ssh/id_rsa.pub

Vous devriez voir un gros morceau de texte, comme celui-ci :

Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 [email protected]

Copiez ce texte et revenez à la page Paramètres du profil dans l'interface Web de GitLab.

Si, à la place, vous obtenez un message qui ressemble à ceci, vous n'avez pas encore configuré de paire de clés SSH sur votre machine :

Outputcat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

Si tel est le cas, vous pouvez créer une paire de clés SSH en tapant :

ssh-keygen

Acceptez les valeurs par défaut et fournissez éventuellement un mot de passe pour sécuriser la clé localement :

OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|          ..%o==B|
|           *.E =.|
|        . ++= B  |
|         ooo.o . |
|      . S .o  . .|
|     . + .. .   o|
|      +   .o.o ..|
|       o .++o .  |
|        oo=+     |
+----[SHA256]-----+

Une fois que vous l'avez, vous pouvez afficher votre clé publique comme ci-dessus en tapant :

cat ~/.ssh/id_rsa.pub
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 [email protected]

Copiez le bloc de texte affiché et revenez à votre profil Paramètres dans l'interface Web de GitLab.

Cliquez sur l'élément Clés SSH dans le menu de gauche :

Dans l'espace fourni, collez la clé publique que vous avez copiée depuis votre ordinateur local. Donnez-lui un titre descriptif et cliquez sur le bouton Ajouter une clé :

Vous devriez maintenant être en mesure de gérer vos projets et référentiels GitLab à partir de votre ordinateur local sans avoir à fournir les informations d'identification de votre compte GitLab.

Étape 6 - Restreindre ou désactiver les inscriptions publiques (facultatif)

Vous avez peut-être remarqué qu'il est possible pour n'importe qui de créer un compte lorsque vous visitez la page d'accueil de votre instance GitLab. C'est peut-être ce que vous souhaitez si vous cherchez à héberger un projet public. Cependant, plusieurs fois, des paramètres plus restrictifs sont souhaitables.

Pour commencer, dirigez-vous vers la zone administrative en cliquant sur l'icône de clé ' dans la barre de menu principale en haut de la page :

Sur la page qui suit, vous pouvez voir un aperçu de votre instance GitLab dans son ensemble. Pour régler les paramètres, cliquez sur l'élément Paramètres en bas du menu de gauche :

Vous serez redirigé vers les paramètres globaux de votre instance GitLab. Ici, vous pouvez régler un certain nombre de paramètres qui déterminent si les nouveaux utilisateurs peuvent s'inscrire et leur niveau d'accès.

Désactivation des inscriptions

Si vous souhaitez désactiver complètement les inscriptions (vous pouvez toujours créer manuellement des comptes pour les nouveaux utilisateurs), faites défiler jusqu'à la section Restrictions d'inscription.

Décochez la case Inscription activée :

Faites défiler vers le bas et cliquez sur le bouton Enregistrer les modifications :

La section d'inscription devrait maintenant être supprimée de la page d'accueil GitLab.

Restreindre les inscriptions par domaine

Si vous utilisez GitLab dans le cadre d'une organisation qui fournit des adresses e-mail associées à un domaine, vous pouvez restreindre les inscriptions par domaine au lieu de les désactiver complètement.

Dans la section Restrictions d'inscription, cochez la case Envoyer un e-mail de confirmation à l'inscription, qui permettra aux utilisateurs de se connecter uniquement après avoir confirmé leur e-mail.

Ensuite, ajoutez votre ou vos domaines à la case Domaines sur liste blanche pour les inscriptions, un domaine par ligne. Vous pouvez utiliser l'astérisque "*" pour spécifier des domaines génériques :

Faites défiler vers le bas et cliquez sur le bouton Enregistrer les modifications :

La section d'inscription devrait maintenant être supprimée de la page d'accueil GitLab.

Restreindre la création de projets

Par défaut, les nouveaux utilisateurs peuvent créer jusqu'à 10 projets. Si vous souhaitez autoriser la visibilité et la participation de nouveaux utilisateurs de l'extérieur, mais souhaitez restreindre leur accès à la création de nouveaux projets, vous pouvez le faire dans la section Paramètres de compte et de limite.

À l'intérieur, vous pouvez modifier la Limite de projets par défaut à 0 pour empêcher complètement les nouveaux utilisateurs de créer des projets :

De nouveaux utilisateurs peuvent toujours être ajoutés manuellement aux projets et auront accès aux projets internes ou publics créés par d'autres utilisateurs.

Faites défiler vers le bas et cliquez sur le bouton Enregistrer les modifications :

Les nouveaux utilisateurs pourront désormais créer des comptes, mais ne pourront pas créer de projets.

Renouveler les certificats Let's Encrypt

Par défaut, GitLab a une tâche planifiée configurée pour renouveler les certificats Let's Encrypt après minuit tous les quatre jours, avec la minute exacte basée sur votre external_url. Vous pouvez modifier ces paramètres dans le fichier /etc/gitlab/gitlab.rb. Par exemple, si vous souhaitez renouveler tous les 7 jours à 12h30, vous pouvez configurer cela comme suit :

/etc/gitlab/gitlab.rb

letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

Vous pouvez également désactiver le renouvellement automatique en ajoutant un paramètre supplémentaire à /etc/gitlab/gitlab.rb :

/etc/gitlab/gitlab.rb

letsencrypt['auto_renew'] = false

Avec les renouvellements automatiques en place, vous n'aurez plus à vous soucier des interruptions de service.

Conclusion

Vous devriez maintenant avoir une instance GitLab fonctionnelle hébergée sur votre propre serveur. Vous pouvez commencer à importer ou créer de nouveaux projets et configurer le niveau d'accès approprié pour votre équipe. GitLab ajoute régulièrement des fonctionnalités et apporte des mises à jour à sa plate-forme, alors assurez-vous de consulter la page d'accueil du projet pour rester au courant des améliorations ou des avis importants.