actualizar.yml
# Instala las actualizaciones del sistema en los nodos, DE UNO EN UNO.
# Si un nodo pide reinicio, lo saca del clúster, lo reinicia, espera a que vuelva y
# lo devuelve antes de pasar al siguiente. Si algo falla, para.
#
# Variables: nodos=<grupo o nodo> (por defecto todos), reiniciar=false para no reiniciar.
- name: Actualizar el sistema
hosts: "{{ nodos | default('all') }}"
gather_facts: false
serial: 1
order: inventory
any_errors_fatal: true
tasks:
- name: Comprobar el clúster
ansible.builtin.include_tasks: tareas/comprobar_cluster.yml
- name: Actualizar
ansible.builtin.include_tasks: tareas/estado.yml
vars:
accion: actualizar
- name: Resultado
ansible.builtin.debug:
msg: >-
{{ 'SIMULACIÓN: se instalarían' if ansible_check_mode else 'Quedan' }}
{{ estado.seguridad }} de seguridad y {{ estado.normales }} normales ·
reinicio {{ 'SÍ' if estado.reinicio else 'no (puede pedirlo tras instalar)' if ansible_check_mode else 'no' }}
{{ ('· ' ~ (estado.paquetes | map(attribute='paquete') | join(', '))) if ansible_check_mode and estado.paquetes else '' }}
- name: Reiniciar si hace falta
ansible.builtin.include_tasks: tareas/reiniciar_nodo.yml
when: estado.reinicio and (reiniciar | default(true) | bool) and not ansible_check_mode