| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| linux_gitlab [2020/02/21 11:34] – [Installation] nekan | linux_gitlab [2021/03/05 16:32] (Version actuelle) – nekan |
|---|
| ~~CLOSETOC~~ | |
| ====== GitLab - Installation d'une plateforme DevOps ====== | ====== GitLab - Installation d'une plateforme DevOps ====== |
| | <label type="info">Création</label> --- //[[nekan@shyrkasystem.com|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... | ''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 : [[https://about.gitlab.com/|GitLab]] | * Référence : [[https://about.gitlab.com/|GitLab]] |
| |
| <WRAP center round info 60%> | <callout type="primary" icon="true" title="Environnement">Cette procédure a été réalisée et testée sur un VM Debian 10.</callout> |
| Cette procédure a été réalisée et testée sur un VM Debian 10. | |
| </WRAP> | |
| |
| <WRAP center round alert 60%> | <callout type="danger" icon="true" title="Droits">Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes.</callout> |
| Cette procédure nécessite des droits ''root''. Faîtes donc attention à ce que vous faîtes. | |
| </WRAP> | |
| |
| ===== Prérequis ===== | ===== Prérequis ===== |
| |
| <WRAP center round important 60%> | <callout type="warning" icon="true" title="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é.</callout> |
| ''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é. | |
| </WRAP> | |
| |
| L'installation de ''GitLab'' nécessite quelques prérequis au niveau des paquets : | L'installation de ''GitLab'' nécessite quelques prérequis au niveau des paquets : |
| <sxh bash>EXTERNAL_URL="http://gitlab.shyrkasys.local"</sxh> | <sxh bash>EXTERNAL_URL="http://gitlab.shyrkasys.local"</sxh> |
| |
| <WRAP center round tip 60%> | <callout type="primary" icon="true" title="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 ''GitLab'' soit accessible de l'extérieur. | * 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 ''GitLab'' soit accessible de l'extérieur. |
| * L'adresse peut être en ''HTTPS'' dans ce cas, l'installateur va automatiquement faire une demande de certificat auprès de Let's Encrypt. | * L'adresse peut être en ''HTTPS'' dans ce cas, l'installateur va automatiquement faire une demande de certificat auprès de Let's Encrypt. |
| </WRAP> | </callout> |
| |
| * On installe le paquet : | * On installe le paquet : |
| <sxh bash>gitlab-ctl reconfigure</sxh> | <sxh bash>gitlab-ctl reconfigure</sxh> |
| |
| ===== Paramétrages ===== | ===== Paramétrage de l'administrateur ===== |
| | |
| | * Lors de la première connexion, ''GitLab'' vous demande de configurer le mot de passe de l'administrateur ''root'' : |
| | <image shape="thumbnail">{{ :linux:gitlab:gitlab_001.png |}}</image> |
| | * Une fois renseigné, on peut alors se connecter sur le compte ''root'' : |
| | <image shape="thumbnail">{{ :linux:gitlab:gitlab_002.png |}}</image> |
| | * Vous avez désormais accès à la page d’accueil de l'administrateur : |
| | <image shape="thumbnail">{{ :linux:gitlab:gitlab_003.png |}}</image> |
| | * 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 ===== |
| | |
| | * ''GitLab'' a 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'' : |
| | <sxh bash>nano /etc/gitlab/gitlab.rb</sxh> |
| | * On recherche avec ''CTRL+W'', la section ''GitLab 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 : |
| | <sxh bash>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 |
| | </sxh> |
| | * 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+O'' et on quitte avec ''CTRL+X'' |
| | * On relance la configuration de ''GitLab'' : |
| | <sxh bash>gitlab-ctl reconfigure</sxh> |
| | |
| | <callout type="warning" icon="true" title="Messagerie">Certains paramètres dépendent entièrement de votre serveur SMTP. Vous trouverez d'autres explications et exemples sur [[https://docs.gitlab.com/omnibus/settings/smtp.html|GitLab]]</callout> |
| | |
| | * On peut tester la configuration en lançant la console ''gitlab-rails'' : |
| | <sxh bash>gitlab-rails console</sxh> |
| | * Après quelques secondes de chargement, un nouveau prompteur apparaît. Exemple : |
| | <sxh bash>[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> |
| | </sxh> |
| | * On peut alors lancer la commande de vérification (en remplaçant ''user@mail.tld'' par votre adresse mail) : |
| | <sxh bash>Notify.test_email('user@mail.tld', 'Test', 'Test').deliver_now</sxh> |
| | * La console devrait alors vous renvoyer le résultat en sachant qu'elle affichera toute erreur qui pourrait subvenir. |
| | |
| | <callout type="success" icon="true" title="Installation">Félicitations, vous avez désormais un serveur ''GitLab'' opérationnel.</callout> |
| |
| {{ :underconstruction-copy-300x150.jpg |}} | |
| --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/02/21 09:21// | |
| ~~DISCUSSION~~ | ~~DISCUSSION~~ |