Ansible是同时管理所有主机还是仅管理五个主机?(-f和:serial)

DiV*_*iNe 3 parallel-processing fork ansible

我阅读了这两个有趣的文档:

ansible-playbook -f->陈述1

ansible-playbook:serial->声明2

我发现了这两个陈述:

陈述1

-f <FORKS>, --forks <FORKS>
Run Code Online (Sandbox Code Playgroud)

指定要使用的并行进程数(默认= 5)

陈述2

滚动更新批次大小。默认情况下,Ansible将尝试并行管理播放中引用的所有计算机。对于滚动更新用例,可以使用serial关键字定义Ansible一次应管理多少个主机:

对不对 ansible一次使用所有主机还是仅使用5个主机?还是5只是-f参数的默认值?

感谢您的澄清!

干杯

小智 5

--forks设置同时在其上执行当前任务的主机数(请参阅Ansible Configuration Settings

serial设置首先运行该剧本的主机的数量(或百分比/分数),并在成功完成后将其应用于其他数量的主机(请参见授权,滚动更新和本地操作

例:

使用设置:

  • 库存 host[1-7]
  • 包含task1和task2的剧本
  • --fork 2
  • serial: 3

程序是:

  1. 运行task1host1host2
  2. 运行task1host3
  3. 运行task2host1host2
  4. 运行task2host3
  5. 完成剧本继续 host[1-3]
  6. 运行task1host4host5
  7. 运行task1host6
  8. 运行task2host4host5
  9. 运行task2host6
  10. 完成剧本继续 host[4-6]
  11. 运行task1host7
  12. 运行task2host7
  13. 完成剧本继续 host7

因为:

  • 您最多一次同时在2个主机上执行一项任务(--fork
  • 您最多一次在3台主机上执行整个剧本(serial