40 lines
1006 B
YAML
40 lines
1006 B
YAML
---
|
|
- name: Reboot host
|
|
hosts: all
|
|
remote_user: root
|
|
tasks:
|
|
- name: check if reboot is required
|
|
stat:
|
|
path: /lib/modules/{{ ansible_kernel }}
|
|
register: modules
|
|
|
|
- name: reboot host
|
|
shell: 'sleep 5 && shutdown -r now "Reboot by Ansible."'
|
|
register: reboot
|
|
async: 1
|
|
poll: 0
|
|
ignore_errors: true
|
|
when: modules.stat.isdir is not defined
|
|
|
|
- name: wait for server to come down
|
|
local_action: wait_for host={{ inventory_hostname }} port=22 state=stopped
|
|
when:
|
|
- reboot.stdout is defined
|
|
- "'Reboot by Ansible.' in reboot.stdout"
|
|
|
|
- name: wait for server to come up
|
|
local_action: wait_for host={{ inventory_hostname }} port=22 state=started
|
|
when:
|
|
- reboot.stdout is defined
|
|
- "'Reboot by Ansible.' in reboot.stdout"
|
|
|
|
- name: check uptime
|
|
shell: 'uptime'
|
|
register: uptime
|
|
|
|
- name: show uptime
|
|
debug:
|
|
msg: "Uptime: {{ uptime.stdout }}"
|
|
...
|
|
|