GitLab est un gestionnaire de référentiel open source basé sur Rails développé par GitLab Inc. Il s'agit d'un gestionnaire de référentiel git basé sur le Web qui permet à votre équipe de collaborer sur le codage, le test et le déploiement d'applications. GitLab fournit plusieurs fonctionnalités, notamment des wikis, le suivi des problèmes, des révisions de code et des flux d'activités.
GitLab Inc propose 4 produits :
- Gitlab CE (Community Edition) - auto-hébergé et gratuit ; l'assistance du forum de la communauté.
- Gitlab EE (Enterprise Edition) – auto-hébergé et payant ; est livré avec des fonctionnalités supplémentaires.
- GitLab.com – SaaS et gratuit.
- GitLab.io - Instance GitLab privée gérée par GitLab Inc.
Dans ce didacticiel, nous discuterons de l'installation étape par étape de GitLab CE (Community Edition) sur CentOS 7 Server avec 4 Go de RAM. Dans l'un de nos tutoriels précédents, nous avons procédé à l'installation manuelle de GitLab. Mais ici, nous utiliserons le package "omnibus" fourni par GitLab pour notre installation.
Ce que nous allons faire
- Installer des packages
- Installer GitLab
- Configurer l'URL GitLab
- Générer un certificat SSL Let's encrypt et DHPARAM
- Activer Nginx HTTPS pour GitLab
- Configurer le pare-feu
- Effectuer l'installation de GitLab
- Test
Prérequis
- Serveur CentOS 7 - 64 bits
- 2 Go de RAM minimum
- Privilèges root
Étape 1 - Installer les packages
Dans cette étape, nous allons télécharger/installer certains packages nécessaires à l'installation de GitLab. Nous utiliserons curl pour télécharger le programme d'installation du référentiel, policycoreutils pour le gestionnaire SELinux, OpenSSH et postfix en tant que serveur SMTP local.
Installez tous ces packages avec la commande yum suivante.
yum -y install curl policycoreutils openssh-server openssh-clients postfix
Après cela, démarrez les services ssh et postfix.
systemctl start sshd
systemctl start postfix
Activez-les maintenant pour qu'ils s'exécutent automatiquement au démarrage.
systemctl enable sshd
systemctl enable postfix
Tous les packages requis pour l'installation de GitLab sont maintenant installés sur le serveur.
Étape 2 - Installer GitLab
GitLab fournit un programme d'installation pour ajouter le référentiel GitLab CE. Téléchargez le programme d'installation avec curl et exécutez le script (comme indiqué ci-dessous) pour ajouter un nouveau référentiel GitLab CE.
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
Le dépôt GitLab CE a été ajouté au système.
Installez maintenant GitLab avec la commande yum suivante.
yum -y install gitlab-ce
Une fois l'installation terminée, vous obtiendrez le résultat comme indiqué ci-dessous.
Avec cela, GitLab CE est maintenant installé sur le serveur CentOS 7.
Étape 3 - Configurer l'URL GitLab
Pour ce tutoriel, nous utiliserons un nom de domaine pour GitLab. Plus précisément, nous utiliserons le nom de domaine 'gitlab.hakase-labs.co.'
Accédez au répertoire de configuration de GitLab "/etc/gitlab", puis modifiez le fichier de configuration "gitlab.rb" avec l'éditeur vim.
cd /etc/gitlab/
vim gitlab.rb
Changez la ligne external_url avec le nom de domaine 'gitlab.hakase-labs.co '.
external_url 'http://gitlab.hakase-labs.co'
Enregistrez les modifications et quittez vim.
Étape 4 - Générer un certificat SSL Let's encrypt et DHPARAM
Pour la couche de sécurité de base, nous utiliserons le SSL pour notre site GitLab. Nous utiliserons un certificat SSL gratuit de Letsencrypt et générerons un certificat DHPARAM pour ajouter une couche de sécurité supplémentaire.
Pour générer le certificat Letsencrypt, nous devons installer l'outil de ligne de commande Letsencrypt, qui est disponible dans le référentiel.
Installez l'outil Letsencrypt sur CentOS 7 avec la commande yum ci-dessous.
yum -y install letsencrypt
Une fois l'installation terminée, générez un nouveau certificat SSL Letsencrypt avec la commande ci-dessous.
letsencrypt certonly --standalone -d gitlab.hakase-labs.co
Remarque : Lors de la génération de SSL Letsencrypt, assurez-vous que vos ports HTTP et HTTPS ne sont pas bloqués par le pare-feu.
Tapez votre adresse e-mail pour renouveler la notification, puis tapez 'A' pour les conditions d'utilisation de Letsencrypt, et enfin tapez 'N' et appuyez à nouveau sur Entrée.
Et si vous voyez le résultat comme indiqué ci-dessous, cela signifie que votre certificat pour le nom de domaine a été généré et stocké dans le répertoire '/etc/letsencrypt/live'.
Ensuite, créez un nouveau répertoire 'ssl' sous le répertoire de configuration GitLab '/etc/gitlab/'.
mkdir -p /etc/gitlab/ssl/
Générez maintenant le fichier pem du certificat DHPARAM à l'aide d'OpenSSL. Le plus gros morceau est plus sûr.
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
Et une fois le certificat DHPARAM généré, modifiez l'autorisation du fichier de certificat sur 600.
chmod 600 /etc/gitlab/ssl/*
Ainsi, le certificat SSL Letsencrypt et DHPARAM pour l'installation de GitLab a été généré.
Étape 5 - Activer Nginx HTTPS pour GitLab
À ce stade, nous avons déjà des fichiers de certificat SSL gratuits de Letsencrypt et un certificat DHPARAM généré à l'aide de la commande OpenSSL. Et dans cette étape, nous allons activer HTTPS pour le site GitLab. Nous allons activer HTTPS et forcer HTTP sur la connexion HTTPS.
Tout d'abord, allez dans le répertoire de configuration de GitLab et modifiez le fichier de configuration 'gitlab.rb'.
cd /etc/gitlab/
vim gitlab.rb
Et changez HTTP en HTTPS sur la ligne external_url.
external_url 'https://gitlab.hakase-labs.co'
Collez ensuite la configuration suivante sous la configuration de ligne 'external_url'.
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem"
nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
Enregistrez les modifications et quittez vim.
Enfin, appliquez la configuration GitLab à l'aide de la commande suivante.
gitlab-ctl reconfigure
Et quand tout est terminé, vous devriez obtenir le résultat comme indiqué ci-dessous.
Étape 6 - Configurer Firewalld
Dans ce tutoriel, nous allons exécuter GitLab sous le pare-feu Firewalld. Assurez-vous donc qu'il est installé sur le système. Si vous ne disposez pas du package, vous pouvez l'installer à l'aide de la commande suivante.
yum -y install firewalld
Démarrez firewalld et activez-le pour qu'il s'exécute automatiquement au démarrage avec les commandes systemctl comme indiqué ci-dessous.
systemctl start firewalld
systemctl enable firewalld
Ensuite, ouvrez de nouveaux ports pour nos services. Nous allons ouvrir les ports SSH, HTTP et HTTPS pour notre configuration GitLab. Exécutez les commandes firewall-cmd ci-dessous pour ouvrir les ports.
firewall-cmd --permanent --add-service ssh
firewall-cmd --permanent --add-service http
firewall-cmd --permanent --add-service https
Rechargez maintenant le pare-feu et vérifiez la configuration du pare-feu. Assurez-vous que SSH, HTTP et HTTPS figurent dans la liste.
firewall-cmd --reload
firewall-cmd --list-all
Donc, avec cela, la configuration de Firewalld pour GitLab est terminée.
Étape 7 - Effectuer l'installation
GitLab a donc été installé dans le système et s'exécute sous le pare-feu Firewalld. Dans cette étape, nous effectuerons quelques réglages rapides après avoir installé GitLab sur le serveur.
Réinitialiser le mot de passe racine GitLab
Ouvrez votre navigateur Web et saisissez l'URL gitlab "gitlab.hakase-labs.co". Vous serez redirigé vers la connexion HTTPS. Modifiez le mot de passe root avec votre propre mot de passe, puis cliquez sur le bouton "Modifier votre mot de passe" pour confirmer.
Vous pouvez maintenant vous connecter au tableau de bord GitLab avec l'utilisateur par défaut "root" et votre propre mot de passe.
Modifier le profil et le nom d'utilisateur
Après vous être connecté au tableau de bord GitLab, cliquez en haut à droite de votre profil d'icône, puis cliquez sur l'icône "Paramètres" pour configurer votre profil.
Dans l'onglet "Profil", modifiez votre nom et votre adresse e-mail, puis cliquez sur le bouton "Mettre à jour les paramètres du profil" en bas pour confirmer.
Ensuite, allez dans l'onglet "Compte" et modifiez le nom d'utilisateur root par défaut avec votre propre nom d'utilisateur, puis cliquez sur le bouton "Mettre à jour le nom d'utilisateur".
Ajouter une clé SSH
Assurez-vous d'avoir déjà une clé, si vous n'avez pas de clé SSH, vous pouvez en générer une en utilisant la commande ci-dessous.
ssh-keygen
Et vous obtiendrez deux clés dans le répertoire ~/.ssh/. 'id_rsa' serait votre clé privée et 'id_rsa.pub' serait votre clé publique.
Revenez ensuite au navigateur Web et cliquez sur l'onglet "Clé SSH". Copiez le contenu du fichier 'id_rsa.pub' et collez-le dans la zone de clé, puis cliquez sur 'Ajouter une clé'.
Avec cela, la clé SSH a été mise à jour.
Restrictions d'inscription et paramètres de limite
Cliquez sur l'icône "Zone d'administration", puis cliquez sur l'icône d'engrenage et choisissez "Paramètres".
Dans la section "Paramètres de compte et de limite", vous pouvez configurer le projet max par utilisateur. Et dans la section "Restrictions d'inscription", vous pouvez ajouter le nom de domaine de votre e-mail à la liste blanche.
Une fois tout cela fait, faites défiler vers le bas et cliquez sur "Enregistrer".
C'est ça. La configuration de base de GitLab est terminée.
Étape 8 - Tester
Maintenant, nous allons faire quelques tests avec notre GitLab auto-hébergé.
Créer un nouveau projet
Cliquez sur l'icône plus en haut à droite pour créer un nouveau référentiel de projet.
Tapez le nom de votre projet, sa description et configurez les paramètres de visibilité de votre projet. Et puis cliquez sur le bouton "Créer un projet".
Avec cela, le projet a été créé.
Tester le premier commit
Une fois votre projet créé (howtoforge dans notre cas), vous serez redirigé vers la page du projet. Commencez maintenant à ajouter du nouveau contenu au référentiel.
Assurez-vous que Git est installé sur votre ordinateur.
Pour ce test, nous devons configurer le compte Git sur l'ordinateur, ce que vous pouvez faire à l'aide des commandes suivantes :
git config --global user.name "hakase"
git config --global user.email "[email protected]"
Clonez le référentiel et ajoutez un nouveau fichier README.md.
git clone https://[email protected]/hakase/howtoforge.git
cd howtoforge/
vim README.md
Le mot de passe hakase vous sera demandé. Veuillez saisir le même mot de passe que nous avons utilisé lors de l'accès à GitLab pour la première fois, puis ajouter un nouveau contenu au fichier README.md.
Validez les nouvelles modifications dans le référentiel à l'aide des commandes suivantes.
git add .
git commit -m 'Add README.md file by hakase-labs'
Ensuite, poussez le référentiel vers le serveur GitLab.
git push origin master
Tapez votre mot de passe et appuyez sur Entrée pour continuer. Vous devriez voir le résultat comme indiqué ci-dessous.
Ouvrez maintenant le projet (howtoforge dans notre cas) à partir de votre navigateur Web et vous verrez qu'un nouveau fichier README.md a été ajouté au référentiel.
Cela confirme donc que Gitlab est installé avec succès sur Ubuntu CentOS 7 avec 4 Go de mémoire.