--- # tasks file for reboot - name: install requirements package: name: "{{ reboot_requirements }}" state: present register: reboot_install_requirements until: reboot_install_requirements is succeeded retries: 3 - name: check for needs-restarting for rhel stat: path: /usr/bin/needs-restarting register: reboot_check_for_needs_restarting_for_rhel - name: check for needs-restarting for debian stat: path: /var/run/needs-restarting register: reboot_check_for_needs_restarting_for_debian - name: see if a reboot is required for rhel command: "{{ reboot_needs_restarting_command }}" register: needsrestarting changed_when: - needsrestarting.rc != 0 failed_when: - needsrestarting.rc != 1 - needsrestarting.rc != 0 when: - ansible_virtualization_type != "docker" - reboot_check_for_needs_restarting_for_rhel.stat.exists - not reboot_always | bool - name: reboot the machine shell: "(sleep {{ reboot_delay }} && {{ reboot_command }} &)" async: 1 poll: 0 ignore_errors: yes when: - ansible_virtualization_type != "docker" - reboot_always | bool or ((reboot_check_for_needs_restarting_for_rhel.stat.exists and needsrestarting.rc == 1) or reboot_check_for_needs_restarting_for_debian.stat.exists) notify: - 1 wait for the start of reboot - 2 wait for the machine to be up - 3 gather facts after reboot - name: flush handlers meta: flush_handlers