Installer jdk17
Site => https://jdk.java.net/17/
- Extraire l’archive :
tar -xvzf jdk-17_linux-x64_bin.tar.gz
Cela va créer un dossier contenant les fichiers Java.
- Déplacer les fichiers dans /opt pour une installation propre :
sudo mv jdk-17 /opt/
- Définir Java 17 comme la version par défaut :
sudo update-alternatives –install /usr/bin/java java /opt/jdk-17/bin/java 1
sudo update-alternatives –config java
Choisis ensuite la version que tu veux utiliser. => généralement auto = 0
Si tu veux ajouter Java à ton PATH, ajoute cette ligne à ton fichier ~/.bashrc ou ~/.profile :
export PATH=/opt/jdk-17/bin:$PATH
🔧 Prérequis
- Jenkins installé (Linux de préférence)
- Ansible installé sur la machine Jenkins (
sudo apt install ansible
) - Accès aux fichiers :
ping.yml
maj.yml
host.ini
- Un agent Jenkins (ou node) configuré (facultatif si Jenkins local)
- Accès SSH à tes hôtes distants configuré
📁 Structure du dépôt
Tu peux structurer ton dépôt Git de la façon suivante :
CopierModifieransible-project/
├── host.ini
├── ping.yml
├── maj.yml
├── Jenkinsfile
🧪 Exemple des fichiers
host.ini
(inventaire)
iniCopierModifier[all]
192.168.1.100
192.168.1.101
[web]
192.168.1.100
[db]
192.168.1.101
ping.yml
yamlCopierModifier- name: Ping all hosts
hosts: all
gather_facts: no
tasks:
- name: Ping
ping:
maj.yml
yamlCopierModifier- name: Mise à jour des paquets
hosts: all
become: true
tasks:
- name: Update apt
apt:
update_cache: yes
upgrade: dist
🧱 Jenkinsfile (pipeline)
Voici un pipeline declaratif simple dans le Jenkinsfile
:
groovyCopierModifierpipeline {
agent any
environment {
ANSIBLE_INVENTORY = "host.ini"
}
stages {
stage('Checkout') {
steps {
git 'https://ton-depot-git.com/ansible-project.git'
}
}
stage('Ping Hosts') {
steps {
sh 'ansible-playbook -i ${ANSIBLE_INVENTORY} ping.yml'
}
}
stage('Mise à jour') {
steps {
sh 'ansible-playbook -i ${ANSIBLE_INVENTORY} maj.yml'
}
}
}
}
🔐 Configuration des clés SSH
Pour éviter les prompts, configure les clés SSH de Jenkins pour qu’il puisse accéder aux hôtes cibles :
bashCopierModifierssh-keygen -t rsa
# Copier la clé publique sur chaque hôte distant
ssh-copy-id user@192.168.1.100
Tu peux aussi gérer cela via un Credential SSH dans Jenkins, puis référencer l’identifiant dans ton pipeline si tu utilises des agents distants.
🚀 Lancer le pipeline
Lance le build
Va dans Jenkins → Nouveau Job → Pipeline
Configure le repo Git et Jenkinsfile