SaltStack 与 Ansible 选择?

对于统一管理工具大家会选择什么?最近比较亲来SaltStack 与Ansible。主要是因为他们都是Python写的而且较新,网上评论也很好。但是二者不知道选哪个好。二者都尝试过,但是由于是在学习环境,没有生产环境的检验不知道哪个更好。目前的感觉是1)Ansible是有个公司在支持,可能支持比较好。2)Ansible不用安装客户端,但是在ssh 公钥被禁的情况下就头大了。3)Ansible的资料较少而且官网doc非常卡。 欢迎大家用过SaltStack、Pupp…
关注者
242
被浏览
54937
目前市场上主流的开源自动化配置管理工具有puppet、chef、ansible、saltstack。到底选择哪一个好?

我为什么选择Saltstack,考虑方式很简单,主要基于如下两个方面:

第一、语言的选择(puppet/chef vs ansible/saltstack)

开源技术,不看官网不足以熟练,不懂源码不足以精通

Puppet、Chef基于Ruby开发,ansible、saltstack基于python开发的

本人热衷于python(后期可做二次开发),排除Puppet、Chef

第二、速度的选择 (ansible vs saltstack)

管理配置讲究的是更快更稳

ansible基于SSH协议传输数据,Saltstack使用消息队列zeroMQ传输数据

测试SSH和MQ传输速度:

例:分别使用两种工具测试1000台服务器的连通性,结果对比:

可以看出使用MQ通讯和SSH通讯,速度相差大约40倍

显然,从速度的角度,排除ansible,最终选择了Saltstack。

在 python系列的ansible、Saltstack的选择中,有人放弃Saltstack的主要原因是Saltstack需要安装客户端,在服务器有 一定数量的情况下比较麻烦,而ansible不需要安装客户端。我个人认为这个考虑是多余的,Saltstack中的Salt-ssh可以轻易解决这个问 题(后面会写篇使用salt-ssh批量部署客户端的博客),而且ansible也并非是不需要在“客户端”做任何操作。例如,1.“客户端”系统 python版本需要满足2.6+,否则需要进行升级;2.ansible使用一些功能也需要“客户端”有对应模块(主要是python模块,即使 python版本满足2.6+,也需要额外安装)