jenkins s’est imposé comme un acteur incontournable de l’Intégration Continue et Déploiement en continue. Dans ce tutoriel, vous allez Installer jenkins et mettre en place une bonne pratique : exécuter les jobs Jenkins dans des Agents.
Contexte : Un host sur lequel il y a un Jenkins ‘master’ et une Machine virtuelle sur laquelle il y a un agent.
1) Télécharger la dernière version stable de Jenkins (package générique en .war) sur le host
Lancer : java -jar jenkins.war
Lancer un navigateur sur l’adresse http://localhost:8080/
Suivre les instructions en choisissant l’option d’installation personnalisée des plugins.
ça y est . Jenkins est installé. plus précisement c’est le noeud ‘master’ de Jenkins qui est installé.
BONNE PRATIQUE : exécuter les futurs Jobs Jenkins sur des Agents (noeuds Agents) afin de soulager le master qui est déja très occupé à gérer l’interface Jenkins.
Cela peut particulièrement être utile pour différentier différents environnements : dev , Tes, recette, préprod, prod
2) Créer une Machine virtuelle ubuntu (virtualbox)
INFO : carte réseau configurée en ‘Pont’ (et non en NAT comme par défaut) pour que le host et la VM se voient.
3) Valider l’installation d’un client et serveur SSH sur l’agent (https://www.youtube.com/watch?v=JZ7h5FxlTVg)
ssh
ssh localhost
sudo apt-get install openssh-server
ssh localhost
4) Valider la communication entre l’hôte et l’agent via SSH
Par exemple si le host est sous windows , avec putty.exe valider connexion ssh
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
6) A partir de Jenkins , ajouter un Agent
puis
puis
puis
puis
EXPLICATION DE LA CONFIGURATION
- – Nom : nom de l’agent
- – Nombre d’exécutors (Ex : 2) : Nombre de job en parallèle que l’agent peut exécuter.
- – Remote root directory : répertoire de l’agent dans lequel seront stockés les fichiers de Jenkins (Jobs / workspace)
- – Etiquette (Label) : utilisé pour grouper un certain nombre d’agents dans un nom logique. Tous les agents qui auront ce label sont susceptible d’être sollicité pour exécuter un job affecté au nom du label (typiquement ds un pipeline label ‘ubuntu’
Exemple : vous avez plusieurs agents ubuntu et vous souhaitez qu’un job soit exécuté sous ubuntu. Vous pouvez configurer tous vos agents ubuntu avec le label/etiquette ‘ubuntu’ - – Usage : quand utiliser cet agent ? dès que possible ou seulement lorsque le label ‘ubuntu’ est sollicité ?
- – Méthode de lancement : SSH
- – Host : ip de l’agent
- – Crédential : login/pwd du compte système de l’agent
- – Host key Verification Strategy : choisir ‘Manualy trusted key verification strategy’
- – Ne pas cocher ‘Require manual verification of initial connection’
- – Disponibilité : laisser par défaut ‘Keep this agent online as much as possible’
- – Propriétés du noeud : préférence d’outils de l’agent. Laisser par défaut.
– Enregistrer
7) Sélectionner l’agent et cliquer sur ‘Launch agent’ . Ceci va déclencher une communication SSH du maitre vers l’agent.
et plus bas dans les logs :
–> Sur le noeud, vérifier que le répertoire dédié aux fichiers de jenkins s’est rempli avec dossier ‘remoting’ et jar ‘remoting.jar’ (ou slave.jar)
BRAVO !
Dans jenkins désormais vous voyez le maitre et l’esclave (noeud)
Anlyser l’état du lanceur de compilation
Expliquez
Reste à créer un job et l’exécuter dans l’agent. Allons-y !
8) Créer un nouveau Job (freestyle) en imposant qu’il soit exécuté sur l’Agent
–> Sur le nœud, vérifier que le répertoire de jenkins s’est rempli avec dossier ‘workspace’ et un sous dossier correspondant au nom du Job
BRAVO !
puis plus bas
Lancer un build manuellement
Analysez le résultat
Bravo !
QUESTION : qu’est ce qu’un Pipeline ?
Analysez et expliquez l’arborescence suivante
Analysez et expliquez le contenu du Pipeline suivant
Exécuter ce Pipeline
LIENS UTILES