当Ansible处理playbook的时候会顺序运行每个play
确定play的主机列表之后Ansible将按顺序运行每个任务
一般来说,所有主机必须在任何主机在play中启动下一个任务之前成功完成任务
理论上,Ansible可以同时连接到play中的所有主机来执行每项任务
Ansible所进行的最大同时连接数由Ansible配置文件中的forks参数控制
且默认情况下为5
使用命令查看 forks 的默认值——grep forks ansible.cfg


简单来说,在所有主机上同时做第一个任务,然后一起做第二个任务
以此类推
使用 -f 或者--forks指定分叉的数量

简单点来说 就是 有很多主机的话
serial:2
先对两台机子下手,这两台机子同时配置
一起做任务一,然后一起做任务二
当所有任务完成的时候
进行下两台的任务
实验:配置并行

任务:跨多个受管主机调整playbook的并行和串行执行
实验开始: lab projects-parallelism start
去往工作目录: cd ~/projects-parallelism
查看文件 vim ansible.cfg

查看inventory文件的内容

检查playbook的内容 vim playbook.yml

检查remove_apache.yml的内容

2.执行playbook并且使用time命令得到运行所需时间
注意ansible如何同时在所有四台主机上执行每项任务

注意时间

3.执行ansible-playbook remove_apache.yml以停止和禁用httpd服务并删除httpd软件包
4.在ansible.cfg中将forks参数的值改为1

5.重新运行playbook并且使用time命令得到运行所需时间
注意这次ansible将一次在一台主机上执行各项任务
注意减少了分叉数量之后如何导致了playbook执行时间比以往更长

6.执行ansible-playbook remove_apache.yml以停止和禁用httpd服务并删除httpd软件包
7.将forks的值设置为2

8.在playbook.yml中添加serial参数并且值设置为2

9.运行playbook.yml

很明显分开运行了
10.执行ansible-playbook remove_apache.yml以停止和禁用httpd服务并删除httpd软件包
11.将forks的值设置为4
12.将playbook中的serial的参数设置为3

13.重新运行 playbook
此时ansible会只在三台主机上执行整个play
然后在最后一台主机上重复该play

实验结束 lab projects-parallelism finish