From 61066662737c46a3c5c397ddb1c108bf85912598 Mon Sep 17 00:00:00 2001 From: Markus Katharina Brechtel Date: Fri, 13 Oct 2017 12:17:47 +0000 Subject: [PATCH] make reboots work --- defaults/main.yml | 7 ++----- meta/main.yml | 1 + tasks/main.yml | 25 +++++++++++-------------- 3 files changed, 14 insertions(+), 19 deletions(-) create mode 100644 meta/main.yml diff --git a/defaults/main.yml b/defaults/main.yml index 0a9abca..48a6c38 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,10 +1,7 @@ reboot_command: true -reboot_pause: true -reboot_wait: true -reboot_check: true -reboot_command_after_seconds: 5 +reboot_command_after_seconds: 10 reboot_pause_seconds: 120 reboot_wait_timeout_seconds: 300 -reboot_uptime_max_seconds: "{{ reboot_delay + reboot_timeout }}" +reboot_uptime_max_seconds: "{{ reboot_pause_seconds - reboot_command_after_seconds + reboot_wait_timeout_seconds }}" diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..603a2d5 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1 @@ +allow_duplicates: yes diff --git a/tasks/main.yml b/tasks/main.yml index c8b62e0..533dc75 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,19 +1,17 @@ --- - name: reboot - shell: - sleep {{reboot_command_after_seconds}} && - logger "Reboot triggered by Ansible script" && + command: + systemd-run --on-active={{reboot_command_after_seconds}} shutdown -r now "Reboot triggered by Ansible script" - async: 1 - poll: 0 + #async: 1 + #poll: 0 #ignore_errors: true when: reboot_command - name: let server reboot pause: seconds: "{{ reboot_pause_seconds }}" - when: reboot_pause - name: wait for ssh local_action: wait_for @@ -24,15 +22,14 @@ delay: 0 timeout: "{{ reboot_wait_timeout_seconds }}" state: started - when: reboot_wait + +- include_role: + name: ssh_host_key - name: try to connect to ssh setup: - when: reboot_check -- name: check uptime for sucsessfull reboot - fail: - msg: host did not reboot; uptime is {{ansible_uptime_seconds}} seconds - when: - - reboot_check - - ansible_uptime_seconds > reboot_uptime_max_seconds +- name: check uptime for successful reboot + set_fact: + reboot_uptime: "{{ ansible_uptime_seconds }}" + failed_when: ansible_uptime_seconds > reboot_uptime_max_seconds