Comment installer et configurer GitLab sur Ubuntu 16.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, telles que 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, publiquement comme moyen d’interface avec les utilisateurs ou même comme moyen pour les contributeurs d’héberger leurs propres projets.

Le projet GitLab rend relativement simple 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 16.04.

Conditions préalables

Ce tutoriel supposera que vous avez accès à un nouveau serveur Ubuntu 16.04. La configuration matérielle requise pour GitLab published publiée recommande d’utiliser un serveur avec:

  • 2 noyaux

  • 4 Go de RAM

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

Pour commencer, vous aurez besoin d’un utilisateur non root avec un accès + sudo + configuré sur le serveur. Il est également judicieux de configurer un pare-feu de base pour fournir une couche de sécurité supplémentaire. Vous pouvez suivre les étapes décrites dans notre Ubuntu 16.04 guide de configuration initiale du serveur pour obtenir cette configuration.

Lorsque vous avez satisfait aux conditions préalables ci-dessus, continuez pour lancer la procédure d’installation.

Installer les 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 utilisons + apt + au cours de cette session, nous pouvons actualiser l’index de paquetage local, puis installer les dépendances en tapant:

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

Certains de ces logiciels seront probablement déjà installés. Pour l’installation + postfix +, sélectionnez * Site Internet * à l’invite. Sur l’écran suivant, entrez le nom de domaine ou l’adresse IP de votre serveur pour configurer le mode d’envoi du courrier par le système.

Installer 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 va entreprendre. Vous pouvez également trouver une version hébergée du script here:

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 proprement dite avec + apt +:

sudo apt-get install gitlab-ce

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

Réglage des règles du 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 conditions préalables, vous aurez un pare-feu + ufw + 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 dans. Si vous avez associé un nom de domaine à votre serveur GitLab, GitLab peut également demander et activer un certificat TLS / SSL gratuit à l’adresse Let’s Encrypt pour sécuriser votre installation. Nous voudrons également autoriser l’accès HTTPS dans ce cas.

Le mappage de protocole à port pour HTTP et HTTPS étant disponible dans le fichier + / etc / services +, nous pouvons autoriser ce trafic à entrer par son 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

Si vous vérifiez à nouveau la commande + ufw status, vous devriez voir un accès configuré pour au moins ces deux services:

sudo ufw status
OutputStatus: active

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

La sortie ci-dessus indique que l’interface Web GitLab sera accessible une fois l’application configurée.

Modification du fichier de configuration GitLab

Avant de pouvoir utiliser l’application, vous devez mettre à jour un 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 + external_url +. Mettez-le à jour pour qu’il corresponde à votre propre domaine ou adresse IP. Si vous avez un domaine, remplacez + http par` + https` afin que GitLab redirige automatiquement les utilisateurs vers le site protégé par le certificat Let’s Encrypt que nous demanderons.

/etc/gitlab/gitlab.rb

# If your GitLab server does not have a domain name, you will need to use an IP
# address instead of a domain and keep the protocol as `http`.
external_url 'http://'

Ensuite, si votre serveur GitLab a un nom de domaine, recherchez dans le fichier le paramètre + letsencrypt ['enable'] +. Décommentez la ligne et réglez-la sur + true +. Cela indiquera à GitLab de demander un certificat Let’s Encrypt pour votre domaine GitLab et de configurer l’application pour qu’elle serve le trafic avec ce dernier.

Ci-dessous, recherchez le paramètre + letsencrypt ['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èmes avec votre domaine. C’est une bonne idée de ne pas commenter et de remplir ceci aussi pour que vous sachiez tout problème:

/etc/gitlab/gitlab.rb

letsencrypt['enable'] =
letsencrypt['contact_emails'] = ['']

Enregistrez et fermez le fichier. Maintenant, lancez 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. Si vous avez activé l’intégration Let’s Encrypt, un certificat doit être configuré pour votre domaine.

Exécution de la configuration initiale via l’interface Web

Maintenant que 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:

http://

Si vous avez activé Let’s Encrypt et utilisé + https + dans votre + external_url +, vous devriez être redirigé vers une connexion HTTPS sécurisée.

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

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/gitlab_initial_password2.png [Invite de définition du mot de passe initial de GitLab]

Dans l’invite de mot de passe initiale, indiquez et confirmez un mot de passe sécurisé pour le compte administratif. Cliquez sur le bouton * Changer votre mot de passe * lorsque vous avez terminé.

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

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/gitlab_first_signin2.png [Invite de connexion de GitLab pour la première fois]

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 pour les utilisateurs existants et cliquez sur le bouton * Connexion *. Vous serez connecté à l’application et dirigé vers une page de destination qui vous invite à commencer à ajouter des projets:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/landing_page2.png [page de renvoi de la connexion initiale de GitLab]

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électionnez * Paramètres *:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/profile_settings_button2.png [Bouton des paramètres de profil GitLab]

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

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/profile_settings2.png [Page des paramètres de profil GitLab]

Réglez les adresses * Nom * et * Email * de «Administrateur» et «[email protected]» sur une valeur plus précise. Le nom que vous sélectionnez sera affiché pour les 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 bouton * Mettre à jour les paramètres du profil * en bas lorsque vous avez terminé:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/update_profile_settings_button2.png [Bouton de configuration du profil de mise à jour GitLab]

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ément * Compte * dans la barre de menu de gauche:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/account_menu_item2.png [Elément de menu du compte GitLab]

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 section * Change username *.

Par défaut, le premier compte administratif porte le nom * racine *. Puisqu’il s’agit d’un nom de compte connu, il est plus sûr de changer de nom. Vous aurez toujours des privilèges administratifs. la seule chose qui va changer est le nom:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/change_username2.png [section sur le changement de nom d’utilisateur GitLab]

Cliquez sur le bouton * Mettre à jour le nom d’utilisateur * pour effectuer le changement:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/update_username_button2.png [Bouton de nom d’utilisateur de la mise à jour GitLab]

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à créé une paire de clés SSH sur votre * ordinateur local *, 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 affiché et retournez dans les paramètres de votre profil dans l’interface Web de GitLab.

Cliquez sur l’élément * SSH Keys * dans le menu de gauche:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/ssh_keys_menu_item2.png [Elément de menu GitLab SSH Keys]

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 bouton * Ajouter une clé *:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/add_ssh_key2.png [GitLab ajoute une clé SSH]

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.

Limitation ou désactivation des 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, dirigez-vous vers la zone administrative en cliquant sur l’icône * clé * dans la barre de menu principale en haut de la page:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/admin_area_button2.png [Bouton de la zone administrative de GitLab]

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ément * Paramètres * en bas du menu de gauche.

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/admin_settings_button2.png [Bouton des paramètres administratifs GitLab]

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 quel sera 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 section * Restrictions d’inscription *.

Décochez la case * Inscription activée *:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/deselect_sign-ups_enabled.png [GitLab désélectionne les inscriptions activées]

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

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/save_settings_button2.png [Bouton d’enregistrement des paramètres de GitLab]

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 section * Restrictions d’inscription *, cochez d’abord la case * Envoyer un e-mail de confirmation lors de l’inscription *, mais autorisez uniquement les utilisateurs à se connecter après avoir confirmé leur adresse e-mail.

Ensuite, ajoutez votre ou vos domaine (s) à la zone * Liste des domaines pour les inscriptions , un par ligne. Vous pouvez utiliser l’astérisque “” pour spécifier des domaines génériques:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/restrict_sign-ups_by_domain.png [GitLab restreint les inscriptions par domaine]

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

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/save_settings_button2.png [Bouton d’enregistrement des paramètres GitLab]

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 la visibilité et la participation de nouveaux utilisateurs extérieurs, mais souhaitez limiter 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 changer la * limite de projets par défaut * à 0 pour empêcher complètement les nouveaux utilisateurs de créer des projets:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/set_projects_to_zero.png [GitLab a réglé les projets à zéro]

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 bouton * Enregistrer *:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/save_settings_button2.png [Bouton d’enregistrement des paramètres GitLab]

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

Création d’un travail périodique à renouveler automatiquement S’il faut chiffrer les certificats

De par leur conception, les certificats Let’s Encrypt ne sont valides que pendant 90 jours. Si vous avez activé Let’s Encrypt plus tôt pour votre domaine GitLab, vous devrez vous assurer que vos certificats sont renouvelés régulièrement pour éviter les interruptions de service. GitLab fournit la commande + gitlab-ctl renew-le-certs + pour demander de nouveaux certificats lorsque vos actifs actuels arrivent à expiration.

Pour automatiser ce processus, nous pouvons créer un travail cron pour exécuter automatiquement cette commande régulièrement. La commande ne renouvellera le certificat que s’il est sur le point d’expiration, ce qui permet de l’exécuter régulièrement en toute sécurité.

Pour commencer, créez et ouvrez un fichier dans + / etc / cron.daily / gitlab-le + dans votre éditeur de texte:

sudo nano /etc/cron.daily/gitlab-le

À l’intérieur, collez le script suivant:

/etc/cron.daily/gitlab-le

#!/bin/bash

set -e

/usr/bin/gitlab-ctl renew-le-certs > /dev/null

Enregistrez et fermez le fichier lorsque vous avez terminé.

Marquez le fichier comme exécutable en tapant:

sudo chmod +x /etc/cron.daily/gitlab-le

Désormais, GitLab devrait vérifier automatiquement chaque jour si son certificat Let’s Encrypt doit être renouvelé. Si tel est le cas, la commande renouvellera automatiquement le certificat.

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 rester informé des améliorations ou des notifications importantes.