44 lines
1.3 KiB
YAML
44 lines
1.3 KiB
YAML
---
|
|
# Check if reboot is required on Linux servers
|
|
|
|
- name: Linux server reboot check
|
|
hosts: servers
|
|
gather_facts: true
|
|
become: true
|
|
|
|
tasks:
|
|
- name: Check if reboot is required (Debian)
|
|
ansible.builtin.stat:
|
|
path: /var/run/reboot-required
|
|
register: reboot_required
|
|
when: ansible_facts["os_family"] == "Debian"
|
|
|
|
- name: Reboot the machine (Wait for 5 minutes)
|
|
ansible.builtin.reboot:
|
|
reboot_timeout: 300
|
|
when:
|
|
- reboot_required.stat.exists is defined
|
|
- reboot_required.stat.exists
|
|
- ansible_facts["os_family"] == "Debian"
|
|
ignore_errors: true
|
|
changed_when:
|
|
- reboot_required.stat.exists is defined
|
|
- reboot_required.stat.exists
|
|
|
|
- name: Check if reboot is required (RHEL-compatible)
|
|
ansible.builtin.shell:
|
|
cmd: /bin/needs-restarting -r
|
|
register: needs_restarting
|
|
when: ansible_facts["os_family"] == "RedHat"
|
|
changed_when: needs_restarting.rc == 1
|
|
|
|
- name: Reboot the machine (Wait for 5 min)
|
|
ansible.builtin.reboot:
|
|
reboot_timeout: 300
|
|
when:
|
|
- needs_restarting.rc is defined
|
|
- needs_restarting.rc == 1
|
|
- ansible_facts["os_family"] == "RedHat"
|
|
ignore_errors: true
|
|
changed_when: needs_restarting == 1
|