0% ont trouvé ce document utile (0 vote)
27 vues7 pages

Poems

Le rapport décrit l'exécution réussie d'un pipeline CI/CD pour le projet DS2, intégrant Jenkins, SonarQube et Docker. Les étapes incluent la configuration de l'environnement, le clonage du dépôt GitHub, la construction avec Maven, l'analyse de code avec SonarQube, la création d'une image Docker et sa publication sur Docker Hub. Le projet vise à automatiser le développement et à garantir la qualité du code tout en facilitant la collaboration via GitHub.

Transféré par

bouchouchayomna02
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)
27 vues7 pages

Poems

Le rapport décrit l'exécution réussie d'un pipeline CI/CD pour le projet DS2, intégrant Jenkins, SonarQube et Docker. Les étapes incluent la configuration de l'environnement, le clonage du dépôt GitHub, la construction avec Maven, l'analyse de code avec SonarQube, la création d'une image Docker et sa publication sur Docker Hub. Le projet vise à automatiser le développement et à garantir la qualité du code tout en facilitant la collaboration via GitHub.

Transféré par

bouchouchayomna02
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

Rapport d'Exécution du Pipeline Jenkins -

Succès
Projet : DS2
Objectif : Mise en place d'un pipeline CI/CD avec intégration de SonarQube et Docker

1. Configuration Initiale

1.1 Environnement Technique

• VM : Ubuntu 22.04 via Vagrant


• Outils :

o Jenkins (port 8080)


o SonarQube (port 9000)
o Docker
o Git, Maven, OpenJDK 17

1.2 Prérequis Validés

Composant Statut Détails

Répertoire GitHub ✅ Cliquer ici

Dockerfile ✅ Présent dans le répertoire racine

SonarQube opérationnel ✅ Accessible via http://192.168.50.4/:9000

Plugins Jenkins ✅ Git, Maven, SonarQube Scanner, Docker

2. Architecture du Pipeline
3. Étapes d'Exécution

3.1 Étape 1 : Clone du dépôt GitHub

• Commande :
git branch: 'main', url: 'https://github.com/Moetaz101/DS2.git'

• Résultat :
✅ Code source récupéré avec succès.

3.2 Étape 2 : Build Maven

• Commande :
mvn clean install

• Validation :
✅ Build réussi (fichier JAR généré dans target/).

3.3 Étape 3 : Analyse SonarQube

• Configuration :

o Credentials injectés via withSonarQubeEnv('SonarQube').


• Commande :
mvn sonar:sonar

• Résultat :
✅ Rapport disponible sur SonarQube (http://<VM-IP>:9000).

3.4 Étape 4 : Build de l'image Docker

• Dockerfile :
FROM openjdk:11
COPY target/*.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

• Commande :
docker build -t image_ds2:latest .

• Validation :
✅ Image créée (docker images | grep image_ds2).
3.5 Étape 5 : Push vers Docker Hub

• Configuration :

o Credentials Jenkins (docker-hub-creds).


• Commande :
docker.withRegistry(https://registry.hub.docker.com’,'docker-hub-creds’)

• Résultat :
✅ Image poussée avec succès.

4. Bonnes Pratiques Appliquées

• Sécurité :

o Utilisation de credentials Jenkins (pas de mots de passe en clair).


• Optimisation :

o Nettoyage du workspace post-build (cleanWs()).


• Maintenabilité :

o Variables d’environnement pour les noms d’images (DOCKER_IMAGE).

5. Validation Finale

Métrique Résultat

Build Maven ✅ Succès

Couverture SonarQube ✅ Rapport généré

Image Docker ✅ Créée et poussée

Temps d’exécution ~2 minutes


6. Objectif Général du Projet

Le projet DS2 vise à implémenter une intégration continue (CI) et une livraison
continue (CD) pour une application Java, en automatisant les étapes critiques du
développement :

• Garantir la qualité du code via des analyses statiques.


• Automatiser la construction et le déploiement via Docker.
• Faciliter la collaboration avec une gestion centralisée sur GitHub.

7. Rôle du Pipeline CI/CD

Le pipeline Jenkins est un enchaînement automatisé de tâches pour :


6.1 Intégration Continue (CI) :

• Vérifier que chaque modification du code (push GitHub) est fonctionnelle.


• Détecter les erreurs tôt dans le cycle de développement.
6.2 Livraison Continue (CD) :
• Empaqueter l’application dans un conteneur Docker prêt à être déployé.
• Livrer l’image sur Docker Hub pour une distribution simplifiée.

8. Outils Utilisés et Leurs Rôles

Outil Rôle dans le Projet Avantages

- Hébergement du code source.


Collaboration centralisée, historique des
GitHub - Déclenchement du pipeline à
modifications.
chaque git push.

- Orchestration du pipeline.
Jenkins - Exécution des étapes (build, test, Automatisation, extensibilité via plugins.
déploiement).
Outil Rôle dans le Projet Avantages

- Gestion des dépendances Java.


Standardisation des builds, intégration avec
Maven - Compilation et packaging (fichier
SonarQube.
JAR).

- Analyse statique du code.


Amélioration de la qualité du code,
SonarQube - Détection de bugs, vulnérabilités,
métriques objectives.
"code smells".

- Création d’un conteneur portable de


Isolation, reproductibilité, échelle avec
Docker l’application.
Kubernetes/Cloud.
- Simplification du déploiement.

9. Étapes Clés du Pipeline et Leur Utilité

Étape Objectif Outils Impliqués

Clone GitHub Récupérer la dernière version du code. Git, Jenkins

Compiler le code et générer un artefact exécutable


Build Maven Maven
(JAR).

Analyse Évaluer la qualité du code (bugs, vulnérabilités, SonarQube, Maven


SonarQube couverture de tests). Plugin

Build Docker Créer une image conteneurisée de l’application pour


Docker, Dockerfile
Image un déploiement uniforme.

Push Docker Publier l’image dans un registre pour partage et


Docker Hub, Jenkins
Hub déploiement.

10. Synergie Entre les Outils

• GitHub → Jenkins : Déclenche le pipeline à chaque modification du code.


• Jenkins → SonarQube : Envoie le code analysé pour validation.
• Maven → Docker : Utilise le JAR généré pour construire l’image.
• Docker → Docker Hub : Stocke l’image pour une utilisation ultérieure
(production, tests).

11. Bénéfices du Projet

• Pour les développeurs :

o Feedback immédiat sur la qualité du code (SonarQube).


o Réduction des erreurs en production (tests automatisés).
• Pour l’équipe DevOps :

o Déploiements standardisés et reproductibles (Docker).


o Surveillance centralisée (Jenkins).
• Pour le produit final :

o Application plus stable et sécurisée.


o Temps de livraison réduit.

Conclusion
Ce pipeline CI/CD illustre l’industrialisation des pratiques DevOps :
🔹 Automatisation des tâches répétitives.
🔹 Qualité garantie par des outils spécialisés.
🔹 Livraison rapide et fiable grâce à Docker.
Voici un tableau simplifiant les termes techniques utilisés dans votre projet DevOps :

Terme Technique Explication Simple Exemple/Utilisation

CI/CD (Intégration Processus automatisé pour tester et livrer Jenkins automatise les tests et la mise en
Continue/Livraison Continue) du code rapidement. production.

Série d'étapes automatisées (build, test,


Pipeline Votre script Jenkins avec 5 étapes.
déploiement).

Plateforme pour stocker et collaborer sur


GitHub Où votre code DS2 est hébergé.
du code.

Outil pour automatiser les tâches (comme


Jenkins Orchestre tout le processus CI/CD.
un robot qui exécute vos instructions).

Outil pour compiler et gérer les Transforme votre code Java en fichier
Maven
dépendances Java. JAR.

"Détective du code" qui trouve des bugs et Vérifie si votre code est propre et
SonarQube
des problèmes de qualité. sécurisé.

Emballage de votre application dans une Crée image_ds2:latest pour votre


Docker
boîte (conteneur) qui marche partout. appli.

Recette pour construire la boîte (image Dit à Docker comment emballer votre
Dockerfile
Docker). appli.

Magasin en ligne pour partager vos boîtes


Docker Hub Où votre image_ds2 est publiée.
(images Docker).

Version gratuite de Java pour exécuter les


OpenJDK Java 17 pour compiler votre code.
programmes.

Action de compiler et préparer le code mvn clean install crée un fichier


Build
pour l'utilisation. JAR.

Fichier produit par le build (ex: JAR, Le fichier target/*.jar généré par
Artefact
WAR). Maven.

Boîte isolée contenant l'application et tout


Conteneur Votre appli DS2 dans une image Docker.
ce dont elle a besoin pour tourner.

Bibliothèque pour stocker et partager des Docker Hub est le registre public le plus
Registre Docker
images Docker. connu.

Identifiants sécurisés (mots de passe,


Credentials Vos accès à Docker Hub ou SonarQube.
tokens) stockés dans Jenkins.

Seuil de qualité à respecter (ex: 0 bug


Quality Gate (SonarQube)
majeur).

Vous aimerez peut-être aussi