Installation de GitLab sur un serveur VPS Debian 9 + ISPconfig

Procédure

GitLab est un outil puissant pour gérer vos différents dépôts Git en toute simplicité. Cependant, sa mise en place avec nos systèmes d'exploitation munis de ISPConfig 3 peut facilement devenir un casse-tête. C'est pourquoi nous avons décidé de vous fournir un manuel complet pour cette opération.

Prérequis

GitLab requiert au moins 2 Go de mémoire vive. Associée avec les 2 Go minimums de ISPConfig 3, le nombre de processus exécutés (représentant près de 30 % du quota pour ISPConfig seul sans aucun site web), l'offre VPS L de la gamme Starter LWS suffit pour des petits projets, mais nous recommandons la gamme VPS Pro pour tout projet d'ordre professionnel.

Pour ce tutoriel, nous allons utiliser un VPS muni du système d'exploitation vierge Debian 9 + ISPConfig 3 proposé sur LWS Panel. Voici les liens vers les autres tutoriels pour d'autres systèmes d'exploitation :

Si vous voulez modifier le système d’exploitation de votre VPS, voici un lien vers la documentation d’aide : Comment modifier le système d’exploitation de mon VPS ?

Notez que ce tutoriel a été uniquement testé sur une installation VIERGE de Debian 9 + ISPConfig. Si vous avez déjà installé des sites web ou d'autres services sur votre VPS, nous ne pourrons pas garantir que le tutoriel sera efficace et/ou que tous vos autres services seront fonctionnels après installation.

N'oubliez pas d'activer le port SSH sur le pare-feu de votre VPS et de désactiver l'infogérance SSH afin de pouvoir se connecter en root sur la console SSH.

Résumé du tutoriel

Voici les étapes qui seront abordées sur ce tutoriel :

  1. Mise à jour du système d'exploitation
  2. Installation de Gitlab
  3. Création d'un certificat SSL Let's Encrypt
  4. Mise en place d'un reverse proxy sur Apache devant Gitlab

1. Mise à jour du système d'exploitation

Avant d’installer quoi que ce soit, il est recommandé de mettre à jour la liste des paquets et les paquets eux-mêmes. Sur votre console SSH, écrivez les commandes suivantes :

apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y

Nous pouvons également mettre à jour ISPConfig.

2. Installation de Gitlab

D’abord, installons les dépendances requises par Gitlab :

apt-get install -y curl openssh-server ca-certificates

Ensuite, ajoutons le dépôt de Gitlab à votre VPS :

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash

Maintenant, installons Gitlab sur le port 6080 (port choisi aléatoirement) :

EXTERNAL_URL="http://vpsXXXXX.lws-hosting.com:6080" apt-get install gitlab-ee

L’installation prend plusieurs minutes, vous pouvez prendre du thé en attendant.

Astuce : si vous avez une connexion Internet peu stable, vous pouvez mettre en place screen pour se reconnecter à la console détachable en cas de déconnexion non prévue. Documentation sur l'utilisation de screen.

L'installation va échouer. C'est tout à fait normal. C'est parce que Gitlab va tenter de faire des modifications au niveau du Kernel, cependant ces modifications ne sont pas autorisés sur les serveurs VPS de LWS vu la technologie de virtualisation utilisée. Pour contourner, il faut "toucher" (exécuter la commande touch) les fichiers de configurations Kernel prosés par Gitlab pour vider leurs contenu et ainsi pouvoir poursuivre l'installation :

touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.sem.conf
touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.shmall.conf
touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.shmmax.conf
touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-net.core.somaxconn.conf

S'il y a d'autres fichiers de configurations, n'hésitez pas à les vider de leurs contenu. Ensuite, effectuez la commande suivante pour regénérer les configurations de Gitlab :

gitlab-ctl reconfigure

Maintenant, il faut arrêter GitLab qui, d'après ce que vous avez pu vérifier, n'est pas du tout fonctionnel :

gitlab-ctl stop

Le problème vient du module unicorn qui utilise le même port que ISPConfig. Nous allons donc modifier son port en éditant le fichier /etc/gitlab/gitlab.rb :

nano /etc/gitlab/gitlab.rb

et éditez la ligne suivante :

# unicorn['port'] = 8080
unicorn['port'] = 8083

Avant c'était en commentaire et 8080 comme valeur. Maintenant, on l'a décommenté et on a mis 8083 comme port. Recréons les fichiers de configurations :

gitlab-ctl reconfigure

Maintenant, il faut redémarrer Gitlab :

gitlab-ctl restart

Astuce : Si unicorn refuse de démarrer, c'est qu'il y a des processus enfants qui ne sont pas encore fermés. Fermez-les avec gitlab-ctl stop puis réessayer.

3. Création d'un certificat SSL Let's Encrypt

Pour sécuriser l'accès à Gitlab, nous allons créer un certificat SSL Let's Encrypt qui sera ensuite installé sur le reverse proxy.

Remarque : Nous n'allons pas mettre en place le certificat SSL sur Gitlab. Nous allons seulement sécuriser l'accès sur son reverse proxy. En effet, Gitlab ne sera accédé que par le reverse proxy, nous pouvons donc épargner un effort de calcul supplémentaire à notre VPS en chiffrant un trafic qui ne sortira pas du VPS.

Pour cela, il faut d'abord pointer git.exemple.com vers votre VPS. Après, nous allons utiliser certbot :

certbot certonly --webroot -w /usr/local/ispconfig/interface/acme/ -d git.exemple.com

Remarque : ISPConfig (grâce à son vhost et son .conf pour Apache) redirige directement les requêtes contenant /.well-known/ vers /usr/local/ispconfig/interface/acme/. Nous utilisons donc une authentification webroot et on utilise le dossier de ISPConfig prévu à cet effet. Ceci va permettre de ne pas s'interférer avec ISPConfig lors des renouvellements.

Si c'est la première fois que vous créez un certificat SSL Let's Encrypt sur votre VPS, vous devriez renseigner une adresse email et accepter les conditions d'utilisations de Let's Encrypt.

4. Configuration du reverse proxy Apache

Maintenant, il faudra configurer le reverse proxy avec Apache qui cohabitera avec ISPConfig et les sites associés. Nous allons donc créer un nouveau fichier de configuration :

nano /etc/apache2/sites-available/gitlab.conf

et il faudra mettre en place le contenu suivant :

<VirtualHost *:80>
    ServerName git.exemple.com
    ServerAdmin root@git.exemple.com

    RewriteEngine On
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName git.exemple.com
    ServerAdmin root@git.exemple.com

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyVia Full

    <Proxy *>
        Require all granted
    </Proxy>

    <Location />
        ProxyPass http://127.0.0.1:6080/
        ProxyPassReverse http://127.0.0.1:6080/
    </Location>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/git.exemple.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/git.exemple.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/git.exemple.com/chain.pem
</VirtualHost>

Et activons ce nouveau vhost :

ln -s /etc/apache2/sites-available/gitlab.conf /etc/apache2/sites-enabled/000-gitlab.conf

Mais avant de redémarrer Apache, il faut activer les modules nécessaires :

a2enmod proxy
a2enmod proxy_http

Maintenant, redémarrer Apache :

systemctl restart apache2

Et voilà. En accédant à git.exemple.com, vous verrez que Gitlab est prêt :

Installation de GitLab sur un serveur VPS Debian 9 + ISPconfig

Rate this article :

5/5 | 2 opinion

This article was useful to you ?

Article utileYes

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Similar articles

3mn reading

Comment accéder à ISPConfig sur mon serveur dédié VPS?

0mn reading

Comment créer un serveur DNS dans ISPConfig sur un serveur dédié VPS ?

0mn reading

Comment modifier le mot de passe du panel ISPConfig 3 ?

1mn reading

Comment sécuriser l'accès à mon panel ISPconfig grâce à un fichier .htaccess.


Ask the LWS team and its community a question