--- - name: Check if system reboot is required hosts: all become: yes become_user: root tasks: - name: Check if a reboot is required register: reboot ansible.builtin.stat: path: /var/run/reboot-required - name: Reboot machine ansible.builtin.reboot: when: reboot.stat.exists - name: Wait for systems to become reachable wait_for_connection: delay: 5 timeout: 300 - name: Add server to rebooted_servers list set_fact: rebooted_servers: "{{ ansible_hostname }}" when: reboot.stat.exists - name: Gather rebooted_servers list set_fact: rebooted_servers_all: "{{ hostvars|select('rebooted_servers is defined')|map(attribute='rebooted_servers')|list }}" run_once: true - name: Debug rebooted servers debug: var: rebooted_servers - name: Send Teams notification run_once: true uri: url: "{{ Teams_webhook }}" method: POST body: | { "title": "Playbook: {{ ansible_play_name }}", "text": "The following servers were rebooted: {{ rebooted_servers_all | join(', ') }}" } body_format: json headers: Content-Type: application/json when: rebooted_servers | length != 0