0% ont trouvé ce document utile (0 vote)
227 vues64 pages

3 - Jenkins

Transféré par

aymeng442
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
227 vues64 pages

3 - Jenkins

Transféré par

aymeng442
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi