I've been trying to create a really simple Ansible playbook that will reboot a server and wait for it to come back.
I've had one in the past on Ansible 1.9 that worked, but i've recently upgraded to 2.1.1.0 and it fails.
The host i'm rebooting is called idm and has an IP of 192.168.200.23.
the playbook is being run from my host 192.168.200.1 with the command
$ ansible-playbook reboot.yml -vvvv
This is the playbook i'm using
---
- hosts: idm
tasks:
- name: Restart server
become: yes
shell: sleep 2 && /sbin/shutdown -r now "Ansible system package upgraded"
- name: waiting 60 secs for server to come back
local_action: wait_for host=192.168.200.23 port=22 delay=60 connect_timeout=200
become: false
It reboots the machine fine, but almost immediately fails with
<192.168.200.23> ESTABLISH SSH CONNECTION FOR USER: root
<192.168.200.23> SSH: EXEC ssh -C -vvv -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -o ControlPath=/home/myork/.ansible/cp/ansible-ssh-%h-%p-%r -tt 192.168.200.23 '/bin/sh -c '"'"'LANG=en_GB.UTF-8 LC_ALL=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8 /usr/bin/python /root/.ansible/tmp/ansible-tmp-1472242630.58-176546106960362/command; rm -rf "/root/.ansible/tmp/ansible-tmp-1472242630.58-176546106960362/" > /dev/null 2>&1 && sleep 0'"'"''
fatal: [idm]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
Any idea what i've missed here ?
Thanks!
I reboot servers with async
fire and forget mode:
- name: Restart server
become: yes
shell: sleep 2 && /sbin/shutdown -r now "Ansible system package upgraded"
async: 1
poll: 0
The following code from Konstantin worked perfectly.
- name: Restart server
become: yes
shell: sleep 2 && /sbin/shutdown -r now "Ansible system package upgraded"
async: 1
poll: 0
- name: waiting 60 secs for server to come back
local_action: wait_for host=192.168.200.23 port=22 delay=20 connect_timeout=200
become: false
delegate_to: 127.0.0.1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With