当串行参数不止一个时,Ansible如何处理任务?
当当串行参数不止一个时,Ansible如何处理任务?,ansible,Ansible,当serial参数为1时,Ansible接受一台主机,然后在移动到下一台主机之前执行剧本中给出的任务 但是当serial参数不止一个时会发生什么 例如,如果我有10台主机,并且我的串行参数是3,这3个任务将如何执行这些任务?这些任务是一次一台主机一个接一个地执行吗?还是像默认执行策略一样执行,每台主机将先执行第一个任务,然后再执行下一个任务。 我还没有找到任何与此相关的文档。假设您保持标准,playbook的每个游戏将在您在关键字serial上指定的节点上执行,但会逐个任务执行,因此即使您有一个
serial
参数为1时,Ansible接受一台主机,然后在移动到下一台主机之前执行剧本中给出的任务
但是当serial
参数不止一个时会发生什么
例如,如果我有10台主机,并且我的串行参数是3,这3个任务将如何执行这些任务?这些任务是一次一台主机一个接一个地执行吗?还是像默认执行策略一样执行,每台主机将先执行第一个任务,然后再执行下一个任务。
我还没有找到任何与此相关的文档。假设您保持标准,playbook的每个游戏将在您在关键字
serial
上指定的节点上执行,但会逐个任务执行,因此即使您有一个节点运行任务的速度比其他节点快,它也不会运行下一个任务,直到其他人完成同样的任务。然后,将从资源清册中获取另外3个节点。如果你有另一个剧本,同样的场景也会上演
所以基本上你的10个节点清单就可以了
- 取3个节点
- 执行任务
- 取3个节点
- 执行任务
- 取3个节点
- 执行任务
- 取剩余节点
- 执行任务
playbook
,plays
和serial
- hosts: all
gather_facts: false
serial: 3
tasks:
- ping:
- ping:
- hosts: all
gather_facts: false
serial: 5 # test with 5 nodes now
tasks:
- ping:
- ping:
如果要模拟行为的差异,可以使用选项-C