在不等待其他主机完成该任务的情况下移动到 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
指令设置批次。
所以我注意到,在我的 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
指令设置批次。