Ansible重新启动远程主机等待60秒,然后重新启动下一个远程主机
我正在尝试用ansible重新启动远程主机。目前,它正在工作,但远程主机在同一时间重新启动。我想用睡眠时间一个接一个地重新启动 我试图在下面的代码中添加wait_for,但它不起作用。我发现了一个与shell冲突的错误Ansible重新启动远程主机等待60秒,然后重新启动下一个远程主机,ansible,Ansible,我正在尝试用ansible重新启动远程主机。目前,它正在工作,但远程主机在同一时间重新启动。我想用睡眠时间一个接一个地重新启动 我试图在下面的代码中添加wait_for,但它不起作用。我发现了一个与shell冲突的错误 Playbook file - name: Rebooting ... wait_for: time_out: 60 shell: sleep 2 && /sbin/shutdown -r now "Reboot require
Playbook file
- name: Rebooting ...
wait_for:
time_out: 60
shell: sleep 2 && /sbin/shutdown -r now "Reboot required"
async: 1
poll: 0
ignore_errors: true
register: rebooting
这是预期程序:
重新启动主机1
睡眠60秒
重新启动主机2
睡眠60秒
重新启动主机3
问题是您的任务中有两个操作:wait_for和shell。除非使用,否则模块需要在其自己的任务中 试着这样做:
- name: Rebooting ...
shell: sleep 2 && /sbin/shutdown -r now "Reboot required"
async: 1
poll: 0
ignore_errors: true
register: rebooting
- name: wait for reboot
wait_for:
timeout: 60
delegate_to: localhost
另一个选择是使用模块。此模块将等待系统下降和恢复,然后再继续。默认情况下,它会等待600秒,等待系统恢复
如果您只想等待60秒,可以执行以下操作:
- name: Rebooting ...
reboot:
reboot_timeout: 60
正如@Peschke所说的,试试这个模块。但是一次只能做一个,你需要在游戏中设置序列号:1:
- hosts: all
serial: 1
become: yes
tasks:
- name: Rebooting ...
reboot:
reboot_timeout: 60
您能回答您的问题并包括您尝试的等待代码以及错误吗?听起来等待是你需要的,所以我很好奇你已经尝试了什么。已经添加了。谢谢佩施克
- hosts: all
serial: 1
become: yes
tasks:
- name: Rebooting ...
reboot:
reboot_timeout: 60