pipeline { agent any stages { stage('Mise à jour container: SWARM & hors SWARM + app spotdl') { steps { script { // Vérifier et définir les permissions du script sh ''' ssh jules@10.24.100.100 'chmod +x /home/jules/containers_update.sh' ''' // Exécuter le script sur la machine distante sh ''' ssh jules@10.24.100.100 '/bin/bash /home/jules/containers_update.sh' ''' } } } stage('Check mise à jour Alpine') { steps { script { // Exécutez le playbook Ansible pour vérifier les mises à jour sh "git clone https://git.zestes.fr/jules/jenkins_update_prod.git" def result = sh(script: 'ansible-playbook -i jenkins_update_prod/inventory.ini jenkins_update_prod/alpine_list_update.yml', returnStdout: true) echo "Résultat de la vérification des mises à jour :\n${result}" } } } stage('Valider les updates ?') { steps { input message: 'Voulez-vous procéder à l\'installation des mises à jour ?' } } stage('Installation des mises à jours systèmes') { steps { // Exécutez à nouveau le playbook Ansible pour installer les mises à jour et redémarrer sh 'ansible-playbook -i jenkins_update_prod/inventory.ini jenkins_update_prod/alpine_upgrade.yml' } } stage('Rebooterles VM Alpine ?') { steps { input message: 'Voulez-vous procéder au redémarrage des VM Alpine ?' } } stage('Reboot VM') { steps { // Exécutez à nouveau le playbook Ansible pour installer les mises à jour et redémarrer sh 'ansible-playbook -i jenkins_update_prod/inventory.ini jenkins_update_prod/reboot.yml' } } } post { always { // Nettoyage de l'espace de travail cleanWs() } } }