forked from pierront/rock-paper-scissors
177 lines
4.6 KiB
Markdown
177 lines
4.6 KiB
Markdown
# Travaux Pratiques CI/CD
|
||
|
||
Le but de ce TP est d’utiliser un git déjà existant et d’y installer une multibranche pipeline Jenkins.
|
||
|
||
## Copier le git du TP sur son profil
|
||
Se rendre sur : https://grond.iut-fbleau.fr/pierront/rock-paper-scissors
|
||
|
||
Faire un fork
|
||
|
||
## Créer la VM pour jenkins
|
||
### Créer la règle pare-feu pour accéder aux ports 8080 et 8081
|
||
Aller dans la section Pare-Feu
|
||
|
||
* Cliquer -> Créer une règle de pare-feu
|
||
* Nom : jenkins-rule
|
||
* Sens du trafic : Entrée
|
||
* Tag cibles : jenkins
|
||
* Plages IPv4 source : 0.0.0.0/0
|
||
* Cocher TCP
|
||
* Ports : 8080, 8081
|
||
* Puis créer
|
||
|
||
---
|
||
|
||
* Créer la VM
|
||
* Configuration de la machine
|
||
* Nom : jenkins
|
||
* Région : la plus proche
|
||
* Série : E2 / e2-medium
|
||
* Mise en réseau
|
||
* Cocher Autoriser le trafic HTTP
|
||
* Cocher Autoriser le trafic HTTPS
|
||
* Tags réseau : ajouter jenkins
|
||
* Créer la VM
|
||
|
||
---
|
||
|
||
## Installation de Jenkins sur la VM
|
||
|
||
Installer git
|
||
```bash
|
||
sudo apt install -y git
|
||
```
|
||
|
||
Installer Java
|
||
```bash
|
||
sudo apt install -y wget apt-transport-https gpg
|
||
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
|
||
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
|
||
sudo apt update
|
||
sudo apt install temurin-21-jdk
|
||
```
|
||
|
||
Installer Jenkins
|
||
```bash
|
||
sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \
|
||
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
|
||
echo "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" \
|
||
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
|
||
/etc/apt/sources.list.d/jenkins.list > /dev/null
|
||
sudo apt update
|
||
sudo apt install jenkins
|
||
```
|
||
|
||
Verifier s'il a bien démarrer :
|
||
`systemctl status jenkins`
|
||
|
||
Se rendre sur l'adresse IP de la VM : http://<IP_EXTERNE_VM>:8080
|
||
|
||
Vous devriez voir la page d'accueil de Jenkins
|
||

|
||
|
||
* Suivre les instructions pour la creation de compte admin
|
||
* Selectionner : Install suggested plugins
|
||
* Créer un nouveau compte admin
|
||
* Voir cette page
|
||

|
||
|
||
---
|
||
|
||
## Configuration de Jenkins avec Gitea
|
||
|
||
### Installer le plugin Gitea
|
||
* Aller dans la section Manage Jenkins **(roue crantée)** -> Plugins
|
||
* Rechercher Gitea
|
||
* Installer le plugin
|
||
|
||
### Configurer Maven
|
||
* Aller dans la section Manage Jenkins **(roue crantée)** -> Tools
|
||
* Add Maven
|
||
* Nom : maven-3.9
|
||
* Cocher Install automatically
|
||
* Version : 3.9.11
|
||
* Cliquer sur Save
|
||
|
||
### Récupérer un token Gitea
|
||
* Se rendre sur Gitea
|
||
* Cliquer sur profil -> Settings -> Applications -> Generate new token
|
||
* Nom du jeton : jenkins-token
|
||
* Avec ces options :
|
||

|
||
* Cliquer sur Generate token
|
||
* **Copier le token pour ne pas le perdre**
|
||
### Configurer Jenkins pour utiliser Gitea
|
||
* Aller dans la section Manage Jenkins -> System
|
||
* Add Gitea Server
|
||
* Choisir le nom du serveur (grond)
|
||
* Metter l'url du serveur : https://grond.iut-fbleau.fr
|
||
* Cocher Manage hooks
|
||
* Cliquer sur _Add +_
|
||
* Kind : Gitea Personal Access Token
|
||
* Token : celui copié dans la section précédente
|
||
* ID : gitea-token
|
||
* Cliquer sur Add
|
||
* Puis save
|
||
|
||
---
|
||
|
||
## Création d'un pipeline
|
||
* Aller dans la section Manage Jenkins -> New Item
|
||
* Nommer le projet : rock-paper-scissors
|
||
* Choisir le type de projet : Multibranch Pipeline
|
||
* Cliquer sur OK
|
||
* Add a source
|
||
* Gitea
|
||
* utiliser le jeton gitea-token
|
||
* owner : _<votre nom d'utilisateur gitea>_
|
||
* Choisir le projet : rock-paper-scissors
|
||
* Choisir le provider : Git
|
||
* Choisir le repository : https://grond.iut-fbleau.fr/pierront/rock-paper-scissors.git
|
||
* Cliquer sur Save
|
||
|
||
Voir que le scan se passe bien.
|
||
|
||
---
|
||
|
||
## Tester le pipeline
|
||
* Aller dans la section Build History -> Build Now
|
||
* Voir que le pipeline se passe bien
|
||
|
||
|
||
Tester l'application via cette url : http://<IP_EXTERNE_VM>:8081/swagger-ui/index.html
|
||
---
|
||
|
||
## Gestion du Jenkinsfile
|
||
|
||
* Regarder les étapes pour comprendre ce que fait le Jenkinsfile
|
||
|
||
---
|
||
|
||
## Ajouter le puits dans le code java
|
||
|
||
Le puits bat la pierre et les ciseaux.
|
||
Le puits est battu par la feuille.
|
||
|
||
Grace à notre pipeline on peut voir le si le code fonctionne bien via les tests unitaires.
|
||
Puis on peut tester réelement grace au deploiement sur la VM de l'application java.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Sources :
|
||
* https://adoptium.net/installation/linux/#deb-installation-on-debian-or-ubuntu
|
||
* https://www.jenkins.io/doc/book/installing/linux/#debianubuntu
|
||
* https://plugins.jenkins.io/gitea/
|
||
* https://www.jenkins.io/doc/book/pipeline/jenkinsfile/
|