CentOSで
yum: name='*' update_cache=yes state=latestの後に再起動をしたくて、方法を探してました。
ググると、すぐにいくつかの方法が見つかるんだけど、こんなエラーが出てうまく動かせなかった。
TASK [common : restart system] *************************************************
fatal: [cent7-2]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Shared connection to 192.168.1.82 closed.\r\n", "unreachable": true}
その時の task の書き方がこんな感じ
- name: restart system
command: shutdown -r now "Ansible triggered"
async: 0
poll: 0
ignore_errors: true
- name: wait for server to comebackで、問題を解決するため、さらに探して見つかった方法がこれ
local_action: wait_for host={{ inventory_hostname }} state=started delay=30 timeout=300
https://stackoverflow.com/questions/29955605/how-to-reboot-centos-7-with-ansible
- name: restart system
shell: |
set timeout 10
nohup bash -c "sleep 2s && reboot" &
- name: wait for server to comeback
local_action: wait_for host={{ inventory_hostname }} state=started delay=30 timeout=60
- name: wait for comeback
wait_for_connection:
delay: 30
timeout: 600
とりあえず、いい感じに動いてくれてます。
環境は
ansibleサーバ、ターゲットサーバ共に CentOS7.4
ansibleは ansible-2.4.1.0-1.el7.noarch