Ansible重新启动远程主机等待60秒,然后重新启动下一个远程主机

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

我正在尝试用ansible重新启动远程主机。目前,它正在工作,但远程主机在同一时间重新启动。我想用睡眠时间一个接一个地重新启动

我试图在下面的代码中添加wait_for,但它不起作用。我发现了一个与shell冲突的错误

  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