GitLab - Installation d'une plateforme DevOps
Création — Nicolas THOREZ 2020/02/21 09:21
GitLab est une plateforme de gestion DevOps. Elle permet de coopérer sur le développement de projet, de suivre les modifications, de les acter ou les refuser, etc…
- Référence : GitLab
Environnement
Cette procédure a été réalisée et testée sur un VM Debian 10.Droits
Cette procédure nécessite des droitsroot. Faîtes donc attention à ce que vous faîtes.Prérequis
Ressources
GitLab peut nécessiter pas mal de ressources CPU, RAM et Disque. Veillez à dimensionner correctement le serveur. De plus, il installe son propre serveur nginx, il est donc recommandé de l'installer sur un serveur sans service Web voire sur un serveur dédié.
L'installation de GitLab nécessite quelques prérequis au niveau des paquets :
- Comme d'habitude, on commence par mettre à jour son dépôt :
apt-get update
- On installe les paquets prérequis :
apt-get install -y curl openssh-server ca-certificates
GitLab va aussi nécessiter une URL. Il va donc falloir la déclarer dans le DNS et s'assurer que la résolution fonctionne avant de lancer l'installation.
Installation
- On installe le dépôt de paquets de
GitLab:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash
- On indique l'URL choisi (celui qui a été déclaré) :
EXTERNAL_URL="http://gitlab.shyrkasys.local"
Accessibilité
- J'ai utilisé ici une adresse local, définie sur mon DNS local. On peut très bien indiquer une adresse publique pour que le
GitLabsoit accessible de l'extérieur. - L'adresse peut être en
HTTPSdans ce cas, l'installateur va automatiquement faire une demande de certificat auprès de Let's Encrypt.
- On installe le paquet :
apt-get install -y gitlab-ee
- Si tout c'est correctement passé, un message nous indique l'installation correct de
GitLab:
Chef Client finished, 547/1489 resources updated in 04 minutes 00 seconds
gitlab Reconfigured!
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab should be available at http://gitlab.shyrkasys.local
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
GitLabest alors accessible depuis l'URL choisi. Ici : http://gitlab.shyrkasys.local
Erreur de 'external_url'
- Si l'installation ne parvient pas à trouver l'URL externe, il vous suffit de modifier le fichier
/etc/gitlab/gitlab.rb:
nano /etc/gitlab/gitlab.rb
- Modifiez la valeur de
external_urlpar l'URL choisi. - Relancer la configuration de
GitLab:
gitlab-ctl reconfigure
Paramétrage de l'administrateur
- Lors de la première connexion,
GitLabvous demande de configurer le mot de passe de l'administrateurroot:

- Une fois renseigné, on peut alors se connecter sur le compte
root:

- Vous avez désormais accès à la page d’accueil de l'administrateur :

- De là, vous pouvez :
- Créer des utilisateurs.
- Créer des projets.
- Configurer les paramètres spécifiques du
GitLab, comme les notifications, les clés de sécurrité…
Paramétrage SMTP
GitLaba besoin d'envoyer des mails pour la création des comptes, les notifications, etc… Pour paramétrer l'envoi de mail, on va éditer le fichier/etc/gitlab/gitlab.rb:
nano /etc/gitlab/gitlab.rb
- On recherche avec
CTRL+W, la sectionGitLab email server settings - On décommente la ligne
gitlab_rails['smtp_enable']. - On décommente la ligne
gitlab_rails['smtp_address']et on modifie sa valeur par l'adresse du serveur SMTP. - On décommente la ligne
gitlab_rails['smtp_port']et on modifie sa valeur par le port utilisé par le serveur SMTP. - On décommente la ligne
gitlab_rails['smtp_user_name']et on modifie sa valeur par l'utilisateur utilisé pour l'authentification. - On décommente la ligne
gitlab_rails['smtp_password']et on modifie sa valeur par le mot de passe de l'utilisateur. - On décommente la ligne
gitlab_rails['smtp_domain']et on modifie sa valeur par le nom de domaine pour l'utilisateur. - On décommente la ligne
gitlab_rails['smtp_authentication'] - On décommente la ligne
gitlab_rails['smtp_enable_starttls_auto'] - On décommente la ligne
gitlab_rails['smtp_tls'] - Les modifications devraient ressembler à ça :
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "mail.shyrkasys.local" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "nekan" gitlab_rails['smtp_password'] = "P@ssw0rd" gitlab_rails['smtp_domain'] = "shyrkasys.local" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false
- Par défaut, l'adresse d'expéditeur sera du type
gitlab@hostname.domain.local, ce qui peut être rejeté par les serveurs SMTP externes. Pour y remédier, on va aussi modifier les lignes suivantes :- On recherche et on décommente
gitlab_rails['gitlab_email_from']. - On modifie sa valeur par l'adresse mail qu'on a donné à
GitLab. - On recherche et on décommente
gitlab_rails['gitlab_email_reply_to']. - On modifie sa valeur par l'adresse mail qu'on a donné à
GitLab.
- On enregistre avec
CTRL+Oet on quitte avecCTRL+X - On relance la configuration de
GitLab:
gitlab-ctl reconfigure
Messagerie
Certains paramètres dépendent entièrement de votre serveur SMTP. Vous trouverez d'autres explications et exemples sur GitLab- On peut tester la configuration en lançant la console
gitlab-rails:
gitlab-rails console
- Après quelques secondes de chargement, un nouveau prompteur apparaît. Exemple :
[12:26:16] root@gitlab:/var/log# gitlab-rails console -------------------------------------------------------------------------------- GitLab: 12.7.6-ee (32aad7c42f1) GitLab Shell: 11.0.0 PostgreSQL: 10.9 -------------------------------------------------------------------------------- Loading production environment (Rails 5.2.3) irb(main):001:0>
- On peut alors lancer la commande de vérification (en remplaçant
user@mail.tldpar votre adresse mail) :
Notify.test_email('user@mail.tld', 'Test', 'Test').deliver_now
- La console devrait alors vous renvoyer le résultat en sachant qu'elle affichera toute erreur qui pourrait subvenir.
Installation
Félicitations, vous avez désormais un serveurGitLab opérationnel.
Discussion