
🌐 También en: English · Deutsch · Français
En mi homelab tengo unas 12 máquinas virtuales basadas en Debian. Hace un tiempo las actualizaba todas a mano, una por una. Entrar por SSH en cada máquina, ejecutar apt update && apt upgrade, esperar, reiniciar si hacía falta… y vuelta a empezar. Funcionaba, pero era lento, aburrido y facilísimo olvidarse de una o dos máquinas.
Ahora uso Ansible para que se encargue de todo. Escribí un playbook sencillo y, con un solo comando, todas mis máquinas virtuales se actualizan en paralelo. Si alguna necesita reiniciarse, Ansible lo comprueba y también se ocupa de ello. Yo solo lanzo el playbook y dejo que la automatización haga el trabajo duro.
Me ahorra muchísimo tiempo y, sinceramente, se siente genial. Veo pasar los logs de varias máquinas a la vez mientras me tomo un café como un administrador de sistemas con superpoderes 🙂
---
- 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 %}





