
🌐 Aussi en: English · Deutsch · Español
Dans mon homelab tournent une douzaine de VM basées sur Debian. Il y a quelque temps, je les mettais toutes à jour à la main, une par une. Connexion SSH sur chaque machine, lancer apt update && apt upgrade, attendre, redémarrer si nécessaire… puis recommencer. Ça marchait, mais c’était lent, ennuyeux, et il était très facile d’oublier une ou deux machines.
Aujourd’hui, c’est Ansible qui s’occupe de tout. J’ai écrit un playbook tout simple et, avec une seule commande, toutes mes VM se mettent à jour en parallèle. Si l’une d’elles a besoin d’un redémarrage, Ansible le détecte et s’en charge aussi. Je lance simplement le playbook et je laisse l’automatisation faire le gros du travail.
Ça me fait gagner un temps fou et, franchement, c’est plutôt jouissif. Je regarde les logs défiler sur plusieurs machines à la fois, en sirotant mon café comme un sysadmin doté de superpouvoirs 🙂
---
- name: Upgrade Debian-based systems
hosts: homelab
become: true
vars:
reboot_flag_path: /var/run/reboot-required
tasks:
- name: Update apt package index
apt:
update_cache: yes
register: apt_update_result
ignore_errors: no
- name: Upgrade installed packages
apt:
upgrade: dist
register: apt_upgrade_result
ignore_errors: yes
retries: 3
delay: 10
until: apt_upgrade_result is succeeded
- name: Show upgrade results
debug:
var: apt_upgrade_result
- name: Check if a reboot is required
stat:
path: "{{ reboot_flag_path }}"
register: reboot_check
- name: Reboot system if needed
reboot:
msg: "System will automatically reboot after upgrade"
pre_reboot_delay: 10
post_reboot_delay: 30
reboot_timeout: 600
when: reboot_check.stat.exists
register: reboot_result
- name: Report whether a reboot was performed
debug:
msg: >-
{% raw %}{% if reboot_check.stat.exists %}{% endraw %}
System was rebooted.
{% raw %}{% else %}{% endraw %}
No reboot required.
{% raw %}{% endif %}{% endraw %}





