配置并行(RH294)

使用分叉在Ansible中配置并行

在Ansible处理playbook的时候会按顺序运行每个play

确定play的主机列表之后,Ansible将按照顺序运行每个任务

所有主机必须在任意主机在play中启动下一个任务之前完成任务

forks

Ansible所进行的最大同时连接数由Ansible配置文件中的forks参数控制

默认情况下应该是5

使用命令——grep forks ansible.cfg 来查看

我们不妨来假设这样一个情况:

在Ansible控制节点上分叉的默认值是5

同时,存在10个受管主机等待playbook任务的运行

运行方式:

Ansible将会在前5个受管主机上执行playbook中的第一个任务

完成之后,才在后5个受管主机上执行第一个任务

当所有的受管主机上都执行完第一个任务之后,

Ansible,才会继续在前5个受管主机执行下一个任务

以此类推,知道play结束

forks的调整

事实上,forks的默认值设置的非常保守

提高forks的情况

如果控制节点正在管理Linux主机,则大多数任务将在受管主机上运行,并且控制节点的负载较少

这种情况下就可以调高forks的值,性能也将随之提高

降低forks的情况

如果playbook在控制节点上要运行很多代码,那么适量提高分叉限制

比方说使用Ansible管理网络路由器和交换机,那么大多数模块在控制节点上运行而不是在网络设备上运行,这会增加控制节点上的负载,这时候就有必要降低forks的值

管理滚动更新

通常,当Ansible运行play时,它会确保所有受管主机在启动任何主机进行下一个任务之前已完成每个任务,在所有受管主机完成所有任务之后,将运行任何通知的处理程序

某个情况

在所有主机上运行所有任务可能会导致意外的情况

如果play更新负载均衡Web服务器集群,可能需要阿紫进行更新时让每个Web服务器停止服务

如果所有服务器都在同一个play中更新,则有这样一种可能,它们全部同时停止服务

当然我们有办法解决这个问题

serial

通过play批量运行主机,在下一批次启动之前,每批主机将在整个play中运行

简单点来说 就是 有很多主机的话

serial:2

先对两台机子下手,这两台机子同时配置

一起做任务一,然后一起做任务二

当所有任务完成的时候

进行下两台的任务

以此类推直到完成

RH294实验——配置并行

任务:跨多个受管主机调整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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值