Python运维工具:Ansible的并行与异步

Python运维工具:Ansible的并行与异步
2018年04月19日 11:35 心空的凝望

Ansible是基于Python开发的自动化运维工具,其特点在于批量系统配置、批量程序部署、批量运行命令等,它基于模块运作,最终为系统提供框架。在Ansible的并行与异步中,有以下几个因素需要注意:

增加并行进程数

Ansible提供一个forks的属性,可以设置运行并行进程数。这个值默认比较保守,只有5个并行进程。我们可以根据自己的机器性能以及网络情况来设定,很多人使用50,也有用500以上的。如果有很多机器要管理的话,可以尝试先增加这个值,看看效果。有三个地方可以设置forks的数量:

环境变量:export ANSIBLE_FORKS=100

ansible.cfg这个配置文件里设置:forks=100

运行ansible命令时增加参数:-f 100

当机器数量比较大的时候,难免会有几台机器不能正常执行。这时候ansible会有提示to retry, use: --limit @/xxx/xxx.retry,把它增加到上个命令的后面就好了。

异步

有时候执行某个任务可能需要很长的时间,在集群规模较大的情况下慢得让人无法忍受。这时可以考虑使用异步模式。在tasks里增加async的属性,设成某个数字,比如60,意思就是这个任务最大运行时间不能超过60秒。也可以设成0,意思是不管任务运行多久,一直等待即可。尚学堂•百战程序员陈老师指出如果没有指定async,则默认为同步模式。还可以设定poll,默认值为10,意思就是每隔10秒轮询查看结果。如果不需要查看结果,设为0就好了。还可以通过register和async_status设定暂时不查看结果,等需要的时候再查看。具体做法可以参考上面的异步模式官网文档,也可以看翻译的中文文档。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部