在不等待其他主机完成该任务的情况下移动到 ansible 中的下一个任务

Move onto next task in ansible without waiting for other hosts to finish that task

所以我注意到,在我的 ansible 剧本中,如果我使用相同的剧本将多个主机作为目标,则每个任务必须在所有主机上完成,然后才能进入下一个任务。

是否可以定义 playbook,这样一个任务在完成后会立即 运行 后续任务,而无需等待所有其他主机上的任务完成?

Ansible 的这种行为可以通过 playbook strategies 来控制。

默认策略为linear策略:

All hosts will run each task before any host starts the next task, using the number of forks (default 5) to parallelize.

另一个可用的策略是 free:

A second strategy ships with ansible free, which allows each host to run until the end of the play as fast as it can.:

设置这样的策略:

- hosts: all
  strategy: free
  tasks:

如果无法使用 free 策略,您可以使用 serial 指令设置批次。