43 lines
1.1 KiB
YAML
43 lines
1.1 KiB
YAML
---
|
|
- 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: 30
|
|
timeout: 300
|
|
|
|
- name: Get list of rebooted servers
|
|
set_fact:
|
|
rebooted_servers: "{{ groups['all'] | intersect([host for host, result in reboot.items() if result.stat.exists]) }}"
|
|
|
|
- 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 | join(', ') }}"
|
|
}
|
|
body_format: json
|
|
headers:
|
|
Content-Type: application/json
|
|
when: rebooted_servers | length > 0 |