2
0
Files
Ansible/Maintenance/maint-reboot-required.yaml
2024-06-08 14:57:48 +02:00

63 lines
1.8 KiB
YAML

---
- name: Check if system reboot is required
hosts: all
become: yes
become_method: sudo
tasks:
- name: Check if a reboot is required
register: reboot
ansible.builtin.stat:
path: /var/run/reboot-required
- name: Reboot machine
command: /sbin/reboot now
poll: 0
when: reboot.stat.exists
- name: Pause for 15 seconds
ansible.builtin.pause:
seconds: 15
when: reboot.stat.exists
- name: Wait for systems to become reachable
wait_for_connection:
- name: Gather server information
set_fact:
server_info: "{{ { 'server': inventory_hostname, 'rebooted': reboot.stat.exists } }}"
- name: Create a list of server information
set_fact:
server_list: "{{ server_list | default([]) + [server_info] }}"
- name: Send Teams notification
run_once: true
uri:
url: "{{ Teams_webhook }}"
method: POST
body: |
{
"title": "Playbook: {{ ansible_play_name }}",
"text": "All servers were checked and rebooted where needed.",
"sections": [
{
"activityTitle": "Server Reboot Status",
"facts": [
{
"name": "Server",
"value": "{{ server_list | map(attribute='server') | join(', ') }}"
},
{
"name": "Rebooted",
"value": "{{ server_list | map(attribute='rebooted') | map('string') | join(', ') }}"
}
],
"markdown": true
}
]
}
body_format: json
headers:
Content-Type: application/json
when: reboot.stat.exists or not reboot.stat.exists