Promptcloud explore la configuration d'intégration de Gerrit et Jenkins
Publié: 2017-01-20Configuration de l'intégration à l'aide de Gerrit et Jenkins
La vie d'un développeur peut devenir un peu monotone avec les tâches répétitives et compliquées. Heureusement, nous avons des outils qui peuvent gérer régulièrement les tâches banales sans jamais se plaindre une fois que vous les avez configurés. Lorsque vous ajoutez l'automatisation aux tests et au déploiement, la solution peut être qualifiée d'« intégration continue ». Une telle configuration peut automatiquement tester et déployer des projets, ce qui vous laisse plus de temps pour vous concentrer sur l'écriture de code que sur le transfert vers les serveurs. Voici comment vous pouvez aller de l'avant avec une configuration d'intégration continue à l' aide de Gerrit et Jenkins . 
Qu'est-ce que Gerrit ?
Gerrit est un système de révision de code open source basé sur git qui possède une interface Web qui vous permet de pousser les modifications à partir d'un client git, de réviser les modifications et de fusionner automatiquement avec le code maître. Chaque fois qu'un changement est effectué, des ensembles de correctifs pour le même sont créés. Gerrit permet différentes comparaisons d'ensembles de correctifs. Il a également la possibilité d'ajouter des commentaires ou des révisions sur des lignes spécifiques, ou sur l'ensemble du patch. Les examinateurs peuvent évaluer les changements avec l'un des éléments ci-dessous : +2 - Ça me semble bien, approuvé. +1 - Cela me semble bien, mais quelqu'un d'autre doit approuver. 0 – Pas de pointage. -1 - Je préférerais que vous ne soumettiez pas ceci. -2 - Bloquer la soumission. Une révision +2 implique que le code peut être soumis au maître par défaut. Cela peut être configuré selon les besoins.
Qu'est-ce que Jenkins et ses utilisations ?
Jenkins est un serveur de build populaire utilisé pour l'intégration continue. Il est basé sur le Web et permet l'automatisation du processus de construction au fur et à mesure que des changements se produisent. Jenkins peut travailler de manière indépendante, même sans Git ou Gerrit. Il a des crochets qui permettent des déclencheurs d'événements, donc lorsqu'un changement se produit, une construction est faite automatiquement. Lorsque Jenkins et Gerrit sont utilisés ensemble, les versions auront une marque de réussite/échec pour indiquer si elles ont réussi les tests. Jenkins exécutera le test de régression après avoir effectué un build. Une fois terminé, il publiera les résultats du test tout comme l'un des examinateurs. En cas d'échec de la construction, il rejettera le correctif. Vous pouvez définir un -1 ou un -2 en fonction de la qualité de votre CI en cas d'échec du test. Parallèlement à cela, d'autres réviseurs de code peuvent également réviser le code à ce stade. Si toutes les révisions ont réussi, le code peut être poussé vers un référentiel public .
Flux de travail pour l'intégration continue
- Le développeur vérifie la source de Git
- Le développeur apporte les modifications requises
- Le développeur pousse les changements à Gerrit
- Gerrit envoie un avis de modification à Jenkins pour un test d'intégration
- Jenkins extrait les modifications directement du serveur Gerrit git et exécute tous les cas de test conformément à la configuration de notre projet
- D'autres développeurs examinent les modifications et approuvent (+2)
- Gerrit fusionne les modifications apportées au référentiel git du projet principal lorsque Jenkins a réussi la construction et que les modifications sont approuvées par d'autres développeurs
1. Installation de Gerrit
- Prérequis : JRE, version minimale 1.8.
- Lien pour télécharger le package de guerre tGerrit
Si vous avez MySQL, vous pouvez l'utiliser pour la base de données Gerrit. Créez des utilisateurs et des bases de données dans MySQL pour Gerrit.
mysql> CRÉER UN UTILISATEUR 'gerrit2'@'localhost' IDENTIFIÉ PAR 'secret' ;
mysql> CREATE DATABASE reviewdb;
mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
mysql> FLUSH PRIVILÈGES ;
Exécutez maintenant la commande ci-dessous pour initialiser le site.
# java -jar gerrit.war init –batch -d ~/Lors de cette initialisation, le service gerrit est démarré par défaut. Si vous souhaitez apporter des modifications, c'est-à-dire la base de données mysql, l'authentification de connexion, envoyer le serveur de messagerie et l'url httpd, vous pouvez modifier le fichier ~//etc/gerrit.config et ajouter les détails du mot de passe ldap et de la base de données dans le ~//etc/secure fichier .config . Si des modifications de paramètres sont apportées, le service gerrit doit être redémarré avant qu'elles ne prennent effet.
# ~//bin/gerrit.sh redémarrerCopiez le script ~//bin/gerrit.sh dans le répertoire init.d en tant que gerrit et ajoutez-le pour démarrer pendant le démarrage de la machine.
2. Connexion initiale
Chargez maintenant votre URL Gerrit dans le navigateur. Vous pouvez également trouver l'URL Web de Gerrit à l'aide de cette commande.
# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl
Maintenant, utilisez l'authentification de connexion en utilisant la méthode que vous avez configurée dans le fichier de configuration Gerrit pour vous connecter à l'interface Web Gerrit. Par défaut, c'est OpenID. LDAP est l'une des méthodes d'authentification les plus utilisées.

Une fois que vous vous êtes connecté avec succès à la page Web de Gerrit, vous devez vous connecter à votre machine cliente où vous ferez le développement. Vous devez générer des clés RSA pour vos sessions ssh. Vous pouvez ignorer l'étape de génération de clé si vous avez déjà les fichiers.
# ls -l ~/.ssh
config_keys_autorisées id_rsa id_rsa.pub hosts_connus
3. Génération de clé SSH
# ssh-keygen -t rsa
Génération d'une paire de clés rsa publique/privée.
Entrez le fichier dans lequel enregistrer la clé (/home/user/.ssh/id_rsa) :
Saisissez la phrase secrète (vide s'il n'y a pas de phrase secrète) :
Saisissez à nouveau la même phrase de passe :
Votre identification a été enregistrée dans /home/user/.ssh/id_rsa.
Votre clé publique a été enregistrée dans /home/user/.ssh/id_rsa.pub.
L'empreinte digitale de la clé est :
SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeUn utilisateur@localhost
L'image aléatoire de la clé est :
+—[RSA 2048]—-+
| o… |
| .+o . o|
| ..+=. E..|
| .=o=.. . |
| . SB * o |
| = .. * o |
| . = . = . .|
| . o. +o++.+ |
| . o*=*Boo .|
+—-[SHA256]—–+
# chat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp utilisateur@localhost
- Copiez la clé publique ci-dessus et accédez à votre URL Web gerrit
- Vérifiez le nom d'utilisateur dans le coin droit de la page Web et cliquez sur votre utilisateur pour trouver le lien des paramètres
- Dans le côté gauche, vous pouvez trouver les "clés publiques SSH", cliquez dessus
- Cliquez maintenant sur le bouton "Ajouter une clé", collez votre clé publique ssh et ajoutez-la
Le premier utilisateur à se connecter et à créer un compte sera automatiquement placé dans les administrateurs entièrement privilégiés. Vous avez maintenant des privilèges pour créer des projets. Cliquez sur l'onglet "Projets" et cliquez sur "Créer de nouveaux projets". Entrez maintenant le nom du projet pour commencer.
Voilà, clonez le projet dans votre système et commencez à ajouter vos codes de développement. # ssh [email protected] -p 29418
| **** Bienvenue sur Gerrit Code Review **** Salut selvam, vous vous êtes connecté avec succès via SSH. Malheureusement, les shells interactifs sont désactivés. Pour cloner un référentiel Git hébergé, utilisez : git clone ssh://[email protected]:29418/REPOSITORY_NAME.git Connexion à 192.168.56.137 fermée. |
# git clone ssh : //[email protected] :29418/Gerrit_Test
4. Installation de Jenkins
Vous pouvez installer jenkins en utilisant le package apt-get ou deb.
- sudo apt-obtenir la mise à jour
- sudo apt-get install jenkins
La configuration de Jenkins existe dans /etc/default/jenkins, où vous pouvez modifier l'emplacement de Java et JAVA_ARGS. Par défaut, jenkins s'exécute sur 8080. Si vous exécutez gerrit et jenkins sur la même machine, le port par défaut 8080 est déjà occupé par gerrit. Ici, vous devez changer le port jenkins. Pour le changer, modifiez la valeur HTTP_PORT pour qu'elle s'exécute sur un port différent.
5. Démarrer le processus Jenkins
# /etc/init.d/jenkins start Accédez à votre navigateur et chargez la page jenkins avec votre nom d'hôte et votre numéro de port jenkins.
https://:/
Si vous avez installé Jenkins 2.*, la page Web de Jenkins vous demandera le mot de passe initial de l'administrateur. Vous pouvez trouver le mot de passe dans le fichier /var/log/jenkins/jenkins.log. Le journal ressemble à ci-dessous :
| La configuration initiale de Jenkins est requise. Un utilisateur admin a été créé et un mot de passe généré. Veuillez utiliser le mot de passe suivant pour procéder à l'installation : f16b093akcnml397jcdoa239d6bafb9 Il peut également être trouvé à : /var/lib/jenkins/secrets/initialAdminPassword |
- Allez maintenant dans Jenkins -> Manage Jenkins -> Plugin Manager pour installer le plugin git et gerrit dans jenkins
- Cliquez sur l'onglet 'Disponible' et recherchez ' Git Plugin ' et cliquez sur 'Installer sans redémarrage'. Recherchez à nouveau « Gerrit Trigger » et cliquez sur « Installer sans redémarrage ». Enfin, vérifiez s'il est dans la liste installée.
Le processus Jenkins est exécuté par l'utilisateur jenkins. Nous devons donc activer l'accès pour l'utilisateur jenkins dans gerrit.
- En utilisant votre méthode d'authentification, créez un utilisateur jenkins dans gerrit
- Créez maintenant ssh-keygen pour l'utilisateur jenkins comme nous l'avons fait précédemment. Mais cette fois, créez la clé avec un passpharse vide et copiez la clé publique pour l'utilisateur jenkins dans le gerrit
- Cliquez maintenant sur "Nouvel élément" pour créer une nouvelle tâche et ajoutez votre URL git dans la section Gestion du code source/Git. Choisissez également « l'événement Gerrit » dans les déclencheurs de génération et entrez le modèle de projet Gerrit.

Enfin, enregistrez la configuration. Parfait, votre configuration Gerrit et Jenkins est maintenant terminée.
