Jenkins
Bureau E204
© 2024-2025– Module DevOps – Jenkins
Plan du cours
• La vie avant Jenkins
• Jenkins
• Installation de Jenkins
• Configuration de Jenkins
• Configuration d‟un projet avec Jenkins
• Travail à faire
© 2024-2025– Module DevOps – Jenkins 1
La vie avant Jenkins
© 2024-2025– Module DevOps – Jenkins 2
Jenkins - Définition
• Jenkins est un serveur open source entièrement écrit en Java. Il permet
d'exécuter une série d'actions pour réaliser les processus devops, également de
manière automatisée. . C‟est un ordonnanceur (Scheduler).
© 2024-2025– Module DevOps – Jenkins 3
Jenkins - Définition
• Il s'exécute dans des conteneurs de servlets tels qu'Apache Tomcat ou
bien il utilise son serveur web embarqué « Jetty ».
• Il s'interface avec des systèmes de gestion de versions tels que ,CVS,
Git et Subversion, et exécute des projets basés sur Apache Ant et
Apache Maven aussi bien que des scripts arbitraires en shell Unix,
batch Windows ou python.
© 2024-2025– Module DevOps – Jenkins 4
Jenkins - Définition
• Par défaut, Jenkins fait juste le nécessaire pour administrer le serveur,
mettre en place les machines child et exécuter des commandes.
• Tout le reste des fonctionnalités (récupération des sources à partir de
Git, exécution sonar, construction projet, envoi d‟email lors d‟un
échec…) est implémenté sous la forme de modules (plugins)
© 2024-2025– Module DevOps – Jenkins 5
Jenkins - Définition
• Jenkins facilite l'intégration continue et la livraison continue dans les
projets logiciels en automatisant les parties liées à la construction, aux
tests et au déploiement.
• Cela permet aux développeurs de travailler en permanence sur
l'amélioration du produit en intégrant des modifications au projet.
© 2024-2025– Module DevOps – Jenkins 6
Jenkins - Définition
© 2024-2025– Module DevOps – Jenkins 7
Jenkins - Définition
Jenkins va exécuter les parties suivantes :
• Récupération du projet à partir du serveur de contrôle de
version (GIT)
• Création des fichiers de compilation
• Compilation
• Application des tests automatiques
• Vérification de la qualité du code
• Préparation de la version à distribuer
• Mise en place de la version à distribuer
© 2024-2025– Module DevOps – Jenkins 8
Installation Git(ubuntu)
• Installation Git
o Pour installer Git, vous devez exécuter la command suivante:
- apt install -y git
- Pour vérifier l‟installation, vous devez exécuter la
commande
- git --version
© 2024-2025– Module DevOps – Jenkins 9
Installation JDK (ubuntu)
• Installation JDK 11
o Dans la machine virtuelle « Ubuntu », lancer le terminal et
exécuter les commandes suivantes: (Si vous utilisez un compte „super
user‟, exécutez la commande sans sudo)
- sudo apt update
- Sudo apt install -y default-jdk (ou bien la version spécifique
de jdk)
o Pour vérifier que le JDK 11 est bien installé, exécuter la
commande suivante:
- java -version
© 2024-2025– Module DevOps – Jenkins 10
Variables d‟environnement(ubuntu)
Pour que les applications Java puissent trouver la machine
virtuelle Java de manière précise, il est nécessaire de
configurer la variable d'environnement "JAVA_HOME".
1- Ouvrir le fichier de configuration système /etc/environment :
2- Ajouter la variable d‟environnement suivante dans le
fichier /etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/"
© 2024-2025– Module DevOps – Jenkins 11
Variables d‟environnement(ubuntu)
3- Appliquer les modifications en utilisant la commande suivante :
source /etc/environment
4- Utiliser la commande suivante pour vérifier que JAVA_HOME
a été configuré correctement :
echo $JAVA_HOME
© 2024-2025– Module DevOps – Jenkins 12
Installation Maven(ubuntu)
Pour procéder à l'installation de Maven, veuillez ouvrir votre
terminal et exécuter les commandes suivantes de manière
consécutive :
sudo apt install maven -y
M2_HOME="opt/apache-maven-3.6.3" //pointer vers
l‟emplacement maven dans votre machine
PATH="$M2_HOME/bin:$PATH"
export PATH
© 2024-2025– Module DevOps – Jenkins 13
Installation Maven(ubuntu)
Pour vérifier que Maven est bien installé, exécuter la
commande suivante :
– Ouvrir le fichier de configuration système /etc/environment et
définir la variable d‟environnement de Maven “M2_HOME” :
M2_HOME="opt/apache-maven-3.6.3"
© 2024-2025– Module DevOps – Jenkins 14
Installation de Jenkins (ubuntu)
• Installation Jenkins
En exécutant les commandes suivantes en ordre, vous installez, configurez et
démarrez Jenkins sur votre système Ubuntu, prêt à être utilisé pour
l'intégration continue et l'automatisation des tâches de développement.
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key
add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ >
/etc/apt/sources.list.d/jenkins.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5BA31D57EF5975CA
sudo apt update
sudo apt install jenkins
sudo systemctl start jenkins sudo systemctl enable jenkins
© 2024-2025– Module DevOps – Jenkins 15
Installation de Jenkins (ubuntu)
Voici une description simple de chaque commande :
Ajouter la clé Jenkins : Cette commande télécharge une clé de sécurité pour
Jenkins et la rend utilisable par le système.
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key
add -
Ajouter la source Jenkins : Cette commande configure le système pour télécharger
les paquets Jenkins depuis un emplacement spécifique sur le web.
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ >
/etc/apt/sources.list.d/jenkins.list'
Récupérer une autre clé : Cette commande obtient une clé de sécurité
supplémentaire nécessaire pour Jenkins.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5BA31D57EF5975CA
© 2024-2025– Module DevOps – Jenkins 16
Installation de Jenkins (ubuntu)
Mettre à jour la liste des paquets : Cette commande actualise la liste des logiciels
disponibles pour installation, y compris Jenkins.
sudo apt update
Installer Jenkins : Cette commande installe Jenkins et ses composants associés.
sudo apt install jenkins
Démarrer Jenkins : Cette commande démarre Jenkins en tant que service.
sudo systemctl start jenkins
Activer le démarrage automatique de Jenkins : Cette commande configure Jenkins
pour qu'il démarre automatiquement lorsque le système démarre.
sudo systemctl enable jenkins
© 2024-2025– Module DevOps – Jenkins 17
Installation de Jenkins (ubuntu)
o Pour lancer Jenkins, exécuter la commande suivante:
- sudo systemctl start jenkins.service
Optionnel: Pour lancer jenkins comme service au démarrage
- sudo systemctl enable jenkins.service
o Pour vérifier l‟installation de Jenkins, vous pouvez lancer la
commande suivante:
- sudo systemctl status jenkins
© 2024-2025– Module DevOps – Jenkins 18
Installation de Jenkins (ubuntu)
o Pour accéder à Jenkins, vous devez récupérer l‟adresse ip de
la machine virtuelle à travers les commandes suivantes:
- ip addr show
- ifconfig
© 2024-2025– Module DevOps – Jenkins 19
Installation de Jenkins (ubuntu)
© 2024-2025– Module DevOps – Jenkins 20
Installation de Jenkins (ubuntu)
o Pour la première fois, il faut débloquer Jenkins en tapant le mot
de passe qui est stocké dans le fichier de log mentionné dans la
fenêtre
o Installer les plugins suggérés.
© 2024-2025– Module DevOps – Jenkins 21
Installation de Jenkins (ubuntu)
© 2024-2025– Module DevOps – Jenkins 22
Installation de Jenkins (ubuntu)
© 2024-2025– Module DevOps – Jenkins 23
Installation de Jenkins (ubuntu)
• Pour personnaliser le numéro de port de Jenkins, il suffit de le
modifier à travers cette fenêtre.
© 2024-2025– Module DevOps – Jenkins 24
Configuration de Jenkins
• Pour modifier le mot de passe, consulter l‟interface « Configurer »
© 2024-2025– Module DevOps – Jenkins 25
Configuration de Jenkins
• Jenkins dispose d‟une interface web très simple et pratique.
• On peut accéder directement vers toutes les configurations
possibles.
• On trouve toutes les informations à propos de tous les jobs.
© 2024-2025– Module DevOps – Jenkins 26
Configuration de Jenkins - Plugins
• Pour installer des plugins, il suffit d‟accéder à la fenêtre « Gestion
des plugins »
© 2024-2025– Module DevOps – Jenkins 27
Configuration de Jenkins - Plugins
• Pour créer notre chaine d'intégration continue, on va installer les
plugins suivants dans Jenkins:
Git plugin
Maven Integration
Nexus Platform
SCM API
Sonargraph Integration
SonarQube Scanner
© 2024-2025– Module DevOps – Jenkins 28
Configuration de Jenkins - Plugins
© 2024-2025– Module DevOps – Jenkins 29
Configuration de Jenkins - Outils
• Pour configurer les outils, il faut accéder à la fenêtre
« Configuration global des outils »
© 2024-2025– Module DevOps – Jenkins 30
Configuration de Jenkins - JDK
© 2024-2025– Module DevOps – Jenkins 31
Configuration de Jenkins - JDK
Décocher ce choix
© 2024-2025– Module DevOps – Jenkins 32
Configuration de Jenkins - JDK
• Pointer sur le JDK installé en local
© 2024-2025– Module DevOps – Jenkins 33
Configuration de Jenkins - Maven
Décocher ce choix
© 2024-2025– Module DevOps – Jenkins 34
Configuration de Jenkins - Maven
• Pointer sur le maven installé en local
© 2024-2025– Module DevOps – Jenkins 35
Configuration de Jenkins - Git
• Rien à faire
© 2024-2025– Module DevOps – Jenkins 36
Configuration d‟un projet avec Jenkins - Job
• Les jobs ou taches représentent le cœur du processus de « build »
dans Jenkins.
• Le projet dans Jenkins est représenté par un job composé de
plusieurs processus du build.
• Tout projet sous Jenkins passe par les 3 étapes suivantes:
✓ Création du job
✓ Configuration du job (configuration des étape du build)
✓ Lancement du build
• Tous processus (ou étapes) du build dans les jobs sont manipulés
directement à travers des plugins.
© 2024-2025– Module DevOps – Jenkins 37
Configuration d‟un projet avec Jenkins - Job
Les Jobs qui permettent de compiler (build) un projet sont les
suivants:
1/ Récupération du projet
2/ Compilation
3/ Lancement des tests unitaires automatiques (JUnit).
4/ Lancement des tests de qualité (Sonar)
4/ Préparation de la version à distribuer.
5/ Mise en place de la version à distribuer (Nexus).
© 2024-2025– Module DevOps – Jenkins 38
Configuration d‟un projet avec Jenkins - Job
Deux méthodes de configuration sont possibles pour mettre en
place un processus de compilation d‟un projet :
• La méthode freestyle où la configuration du projet se réalise
à travers un formulaire à remplir.
• L‟implémentation d‟un pipeline, qui définit la configuration
d‟un projet grâce à des scripts (basé sur Groovy). Cette
méthode offre aussi les avantages de permettre de
paralléliser les étapes du projet et offre une meilleure
interface pour lire les logs.
© 2024-2025– Module DevOps – Jenkins 39
Configuration d‟un projet avec Jenkins - FreeStyle
• Pour montrer le fonctionnement de Jenkins, nous allons utiliser
un projet spring boot.
Au début, il faut créer un « projet » de type freestyle
© 2024-2025– Module DevOps – Jenkins 40
Configuration d‟un projet avec Jenkins - FreeStyle
• Après la création du projet, il faut enchainer avec les Jobs pour
compiler le projet. La première partie de la page de
configuration indique les informations générales du projet.
© 2024-2025– Module DevOps – Jenkins 41
Configuration d‟un projet avec Jenkins - FreeStyle
1/ Récupération du code
Il faut ajouter des clés SSH ou de définir des noms d'utilisateur et des mots de
passe dans la partie « Identifiants » pour que le Jenkins soit capable de
récupérer le code.
© 2024-2025– Module DevOps – Jenkins 42
Configuration d‟un projet avec Jenkins - FreeStyle
Il faut générer un token à partir du Git.
© 2024-2025– Module DevOps – Jenkins 43
Configuration d‟un projet avec Jenkins - FreeStyle
© 2024-2025– Module DevOps – Jenkins 44
Configuration d‟un projet avec Jenkins - FreeStyle
© 2024-2025– Module DevOps – Jenkins 45
Configuration d‟un projet avec Jenkins - FreeStyle
Il faut choisir l‟action qui va lancer la chaine de l‟intégration continue
périodiquement (process qui se lance chaque 15 minutes).
Cliquer ici pour plus d’informations
© 2024-2025– Module DevOps – Jenkins 46
Configuration d‟un projet avec Jenkins - FreeStyle
Pour les autres taches (2, 3, 4 et 5), on peut les configurer à travers la
partie Build.
© 2024-2025– Module DevOps – Jenkins 47
Configuration d‟un projet avec Jenkins - FreeStyle
Exemple Simple 01: Ecrire un message simple en affichant la date
système.
© 2024-2025– Module DevOps – Jenkins 48
Configuration d‟un projet avec Jenkins - FreeStyle
Exemple Simple 02: Vérifie l‟installation de maven.
© 2024-2025– Module DevOps – Jenkins 49
Configuration d‟un projet avec Jenkins - FreeStyle
• Sauvegarder la configuration et lancer le build.
© 2024-2025– Module DevOps – Jenkins 50
Configuration d‟un projet avec Jenkins - FreeStyle
• Si le build a échoué, l‟icone s‟affiche avant le nom du projet
au niveau du dashboard.
© 2024-2025– Module DevOps – Jenkins 51
Configuration d‟un projet avec Jenkins - FreeStyle
• Si le build a réussi, l‟icone s‟affiche.
© 2024-2025– Module DevOps – Jenkins 52
Configuration d‟un projet avec Jenkins - Pipeline
• Le pipeline Jenkins est implémenté sous forme de code qui permet à
plusieurs utilisateurs de modifier et d'exécuter le processus de pipeline.
• Pipeline donne une solution à cette problématique en offrant un
nouveau langage pour l‟écriture de la configuration des tâches grâce
notamment au langage groovy.
• Le pipeline peut ainsi être sauvegardé dans un fichier (versionning) et
peut gérer les différents cas possibles.
https://www.jenkins.io/doc/book/pipeline
/getting-started/
© 2024-2025– Module DevOps – Jenkins 53
Configuration d‟un projet avec Jenkins - Pipeline
• Pour montrer le fonctionnement de Jenkins, nous allons utiliser
un projet spring boot.
Au début, il faut créer un « projet » de type pipeline.
© 2024-2025– Module DevOps – Jenkins 54
Configuration d‟un projet avec Jenkins - Pipeline
• Il faut choisir l‟action qui va lancer la chaine de l‟intégration
continue si Jenkins détecte un push dans le Git (process qui se
lance chaque 5 minutes).
Cliquer ici pour plus d’informations
© 2024-2025– Module DevOps – Jenkins 55
Configuration d‟un projet avec Jenkins - Pipeline
Exemple Simple : Afficher « Hello world » avec « Groovy »
© 2024-2025– Module DevOps – Jenkins 56
Configuration d‟un projet avec Jenkins - Pipeline
Exemple 01 : Récupération du code du git
Si le repository est privé
© 2024-2025– Module DevOps – Jenkins 57
Configuration d‟un projet avec Jenkins - Pipeline
Exemple 02 : Exécuter une commande Maven
© 2024-2025– Module DevOps – Jenkins 58
Configuration d‟un projet avec Jenkins - Bonus
• Lancer un build à distance
Pour déclencher le job à distance (à travers un URL à saisir dans le navigateur)
http://localhost:8080/job/Pipeline%20Complet%20Spring%20IOC/build?token=token
© 2024-2025– Module DevOps – Jenkins 59
Configuration d‟un projet avec Jenkins - Bonus
Dans le navigateur :
Dans Jenkins :
© 2024-2025– Module DevOps – Jenkins 60
Travail à faire
• En utilisant « Groovy », créer une chaine d‟intégration continue qui
se lance lors du détection d‟un push dans le git .
• Ce pipeline contient:
La récupération du code source.
La construction du livrable
© 2024-2025– Module DevOps – Jenkins 61
Jenkins
Si vous avez des questions, n‟hésitez pas à
nous contacter :
Département Informatique
UP ASI
Bureau E204
© 2024-2025– Module DevOps – Jenkins 62
Jenkins
© 2024-2025– Module DevOps – Jenkins