
🌐 Auch auf: English · Français · Español
In meinem Homelab laufen rund 12 Debian-basierte VMs. Früher habe ich sie alle von Hand aktualisiert – eine nach der anderen. Per SSH auf jede Maschine, apt update && apt upgrade ausführen, warten, bei Bedarf neu starten … und dann das Ganze von vorn. Das hat funktioniert, war aber langsam, langweilig, und man vergisst dabei verdammt leicht ein oder zwei Maschinen.
Heute erledigt Ansible das alles für mich. Ich habe ein einfaches Playbook geschrieben, und mit einem einzigen Befehl werden alle meine VMs parallel aktualisiert. Braucht eine davon einen Neustart, prüft Ansible das und kümmert sich gleich mit darum. Ich starte nur das Playbook und lasse die Automatisierung die Schwerstarbeit machen.
Das spart mir jede Menge Zeit, und ehrlich gesagt fühlt es sich ziemlich großartig an. Ich sehe zu, wie die Logs mehrerer Maschinen gleichzeitig durchrauschen – und schlürfe dabei Kaffee wie ein Sysadmin mit Superkräften 🙂
---
- 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 %}





