Comment installer et configurer GitLab sur Ubuntu 18.04

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 comme le suivi des problèmes. Conçu pour être hébergé à l'aide de votre propre infrastructure, il 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:

Lespublished GitLab hardware requirementsrecommandent d'utiliser un serveur avec:

  • 2 noyaux

  • 8 Go de RAM

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

  • Un nom de domaine pointé sur votre serveur. Pour plus d'informations, consultez notre documentation sur la façon de faireget started with DNS on DigitalOcean. Ce tutoriel utilisera le nom de domaineexample.com.

[[step-1 -—- installation-des-dépendances]] == É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 au cours de l’installation et de manière continue. Heureusement, tous les logiciels requis peuvent être facilement installés à partir des référentiels de paquets par défaut d’Ubuntu.

Comme c'est la première fois que nous utilisonsapt au cours de cette session, nous pouvons actualiser l'index du 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 seront probablement déjà installés. Pour l'installation depostfix, sélectionnezInternet Site lorsque vous y êtes invité. Sur l’écran suivant, entrez le nom de domaine de votre serveur pour configurer le mode d’envoi du courrier par le système.

[[step-2 -—- Installing-gitlab]] == É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.

Accédez au 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 effectuera. Vous pouvez également trouver une version hébergée du scripthere:

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 maintenus par GitLab. Cela vous permet de gérer GitLab avec les mêmes outils de gestion de paquets que vous utilisez pour vos autres packages système. Une fois cette opération terminée, vous pouvez installer l'application GitLab réelle avecapt:

sudo apt install gitlab-ce

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

[[step-3 -—- Adjusting-the-firewall-rules]] == Étape 3 - Ajustement des règles de pare-feu

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

Affichez le statut actuel de votre pare-feu actif en tapant:

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 limité. GitLab étant une application Web, nous devrions autoriser l'accès HTTP. Étant donné que nous profiterons de la capacité de GitLab à demander et à activer un certificat TLS / SSL gratuit à partir deLet’s Encrypt, autorisons également l’accès HTTPS.

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

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

Vérifiez à nouveau lesufw 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 l'application configurée.

[[step-4 -—- edit-the-gitlab-configuration-file]] == É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. Tout d’abord, ouvrez le fichier de configuration de Gitlab:

sudo nano /etc/gitlab/gitlab.rb

Près du haut se trouve la ligne de configuration deexternal_url. Mettez-le à jour pour correspondre à votre domaine. Remplacezhttp parhttps afin 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ètreletsencrypt['contact_emails']. Ce paramètre définit une liste d'adresses électroniques 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 ne pas commenter et de remplir ce formulaire afin que vous sachiez 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 aux invites. Le processus configurera également un certificat Let’s Encrypt pour votre domaine.

[[step-5 -—- performing-initial-configuration-through-the-web-interface]] == Étape 5 - Exécution de la configuration initiale via l'interface Web

Lorsque GitLab est en cours d'exécution et que l'accès est 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 première invite pour définir un mot de passe pour le compte administratif:

GitLab initial password set prompt

Dans l'invite de mot de passe initiale, indiquez et confirmez un mot de passe sécurisé pour le compte administratif. Cliquez sur le boutonChange your password lorsque vous avez terminé.

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

GitLab first sign in prompt

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

  • Nom d'utilisateur:root

  • Mot de passe: [le mot de passe que vous avez défini]

Entrez ces valeurs dans les champs des utilisateurs existants et cliquez sur le boutonSign in. Vous serez connecté à l'application et dirigé vers une page de destination qui vous invite à commencer à ajouter des projets:

GitLab initial login landing page

Vous pouvez maintenant apporter quelques modifications simples pour que GitLab soit configuré comme vous le souhaitez.

Ajuster les paramètres de votre profil

Une des premières choses que vous devriez faire après une nouvelle installation est d’améliorer 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 avez commencé à utiliser le logiciel.

Pour apporter 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électionnezSettings:

GitLab profile settings button

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

GitLab profile settings page

Ajustez les adressesName etEmail de «Administrateur» et «[email protected]» à quelque chose de plus précis. Le nom que vous sélectionnez sera affiché par d'autres utilisateurs, tandis que l'e-mail sera utilisé pour la détection par défaut des avatars, les notifications, les actions Git via l'interface, etc.

Cliquez sur le boutonUpdate Profile settings en bas lorsque vous avez terminé:

GitLab update profile settings button

Un email de confirmation sera envoyé à l'adresse que vous avez fournie. Suivez les instructions du courrier électronique pour confirmer votre compte et pouvoir commencer à l’utiliser avec GitLab.

Changer le nom de votre compte

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

GitLab account menu item

Ici, vous pouvez trouver votre jeton d'API privée ou configurer une authentification à deux facteurs. Cependant, la fonctionnalité qui nous intéresse pour le moment est la sectionChange username.

Par défaut, le premier compte administratif reçoit le nomroot. Puisqu'il s'agit d'un nom de compte connu, il est plus sûr de le changer pour un nom différent. Vous aurez toujours des privilèges administratifs. la seule chose qui va changer est le nom. Remplacezroot par votre nom d'utilisateur préféré:

GitLab change username section

Cliquez sur le boutonUpdate username pour effectuer le changement:

GitLab update username button

Lors de votre prochaine connexion à 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à une paire de clés SSH créée sur voslocal computer, vous pouvez généralement afficher la clé publique en tapant:

cat ~/.ssh/id_rsa.pub

Vous devriez voir une grande partie du texte, comme ceci:

Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Copiez ce texte et retournez à la page Paramètres du profil de l’interface Web de GitLab.

Si, au lieu de cela, vous obtenez un message qui ressemble à ceci, vous n'avez pas encore de paire de clés SSH configurée sur votre ordinateur:

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 avez cela, 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 sammy@mydesktop

Copiez le bloc de texte qui s'affiche et revenez à votre profilSettings dans l'interface Web de GitLab.

Cliquez sur l'élémentSSH Keys dans le menu de gauche:

GitLab SSH Keys menu item

Dans l’espace prévu, collez la clé publique que vous avez copiée à partir de votre ordinateur local. Donnez-lui un titre descriptif et cliquez sur le boutonAdd key:

GitLab add SSH Key

Vous devriez maintenant pouvoir 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.

[[step-6 -—- restricting-or-disabling-public-sign-ups-optional]] == Étape 6 - Restreindre ou désactiver les inscriptions publiques (facultatif)

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

Pour commencer, rendez-vous dans la zone administrative en cliquant sur leswrench icon dans la barre de menu principale en haut de la page:

GitLab administrative area button

Sur la page suivante, vous pouvez voir un aperçu de votre instance GitLab dans son ensemble. Pour ajuster les paramètres, cliquez sur l'élémentSettings en bas du menu de gauche:

GitLab administrative settings button

Vous serez amené aux 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ésactiver les 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 sectionSign-up Restrictions.

Décochez la caseSign-up enabled:

GitLab deselect sign-ups enabled

Faites défiler vers le bas et cliquez sur le boutonSave changes:

GitLab save settings button

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

Limiter les inscriptions par domaine

Si vous utilisez GitLab dans le cadre d'une organisation fournissant des adresses électroniques associées à un domaine, vous pouvez limiter les inscriptions par domaine au lieu de les désactiver complètement.

Dans la sectionSign-up Restrictions, cochez la caseSend confirmation email on sign-up, qui permettra aux utilisateurs de se connecter uniquement après avoir confirmé leur adresse e-mail.

Ensuite, ajoutez votre ou vos domaines à la caseWhitelisted domains for sign-ups, un domaine par ligne. Vous pouvez utiliser l'astérisque “*” pour spécifier les domaines génériques:

GitLab restrict sign-ups by domain

Faites défiler vers le bas et cliquez sur le boutonSave changes:

GitLab save settings button

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

Restreindre la création de projet

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

À l'intérieur, vous pouvez changer lesDefault projects limit sur 0 pour empêcher complètement les nouveaux utilisateurs de créer des projets:

GitLab set projects to zero

Les 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 boutonSave changes:

GitLab save settings button

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

Renouvellement des certificats Let Encrypt Certificates

Par défaut, GitLab a une tâche planifiée configurée pour renouveler les certificats Let’s Encrypt tous les quatre jours après minuit, avec la minute exacte en fonction de vosexternal_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 le configurer 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 de travail GitLab 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 met à jour sa plate-forme. Assurez-vous de consulter la page d'accueil du projet pour vous tenir au courant des améliorations ou des notifications importantes.