--- - block: - name: Update packages (Fedora Atomic) community.general.atomic_host: revision: latest when: ansible_distribution == 'Fedora' and ansible_local.os.is_atomic register: atomic_host_upgraded - name: Refresh and update packages (DNF driven distros) ansible.builtin.dnf: name: "*" state: latest update_cache: true when: ansible_distribution in ['CentOS', 'Fedora', 'Red Hat Enterprise Linux', 'RedHat'] and not ansible_local.os.is_atomic register: fedora_upgraded - name: Update packages (generic - non-atomic/dnf) ansible.builtin.package: name: '*' state: latest when: ansible_distribution in ["Debian", "Ubuntu"] register: host_upgraded - name: Reboot updated hosts ansible.builtin.shell: nohup bash -c "sleep 2 && shutdown -r now" & register: host_reset when: (atomic_host_upgraded is changed) or (host_upgraded is changed) or (fedora_upgraded is changed) - name: Wait for rebooted host to return ansible.builtin.wait_for_connection: timeout: 300 delay: 20 when: host_reset is changed become: true tags: - update