Puppet、Chef、Ansible、Salt对比

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1、目前市面上常见的自动化运维工具主要有以下几种,Puppet、Chef、Ansible和Salt,下面对四种产品做一个对比介绍:

Puppet应该是市面上使用最多的,就操作、模块、界面而言,它是最全面的,Puppet呈现了数据中心协调的全貌,为各大操作系统提供了深入的工具,初始设置简单,只是需要加以管理的每个系统上安装客户端代理软件,CLI简单直观,允许通过puppet命令下载和安装模块,你可以对配置文件进行需要的修改,让模块适合所需的任务,接到指令的客户端与主服务器联系时,会更改配置文件,也可以是客户端主动与服务端通信来获取到最新的配置文件,还有一些模块可以提供和配置云服务器实例和虚拟服务器实例,所有模块和配置都使用基于Ruby的Puppet专属语言或者Ruby本身构建而成,因而除了系统管理技能外,还需要编程专业知识。

Chef的总体概念类似Puppet,因为在被管理的节点上安装代理软件,但实际部署又不一样。除了主服务器外,安装的Chef环境还需要工作站来控制主服务器。代理软件可以借助使用SSH来部署的knife工具从工作站加以安装,减轻了安装负担。被管理的节点通过使用证书,完成与主服务器之间的验证。与Puppet一样,Chef得益于一大批的模块和配置菜谱,那些模块和配置菜谱又高度依赖Ruby。由于这个原因,Chef非常适合注重开发的基础设施。

Ansible极其类似Salt,而不太类似Puppet或Chef,Ansible关注的重点是力求精简和快速,而且不需要在节点上安装代理软件也可以选择安装。Ansible能通过SSH执行所有功能,Ansible基于Python开发对于熟悉python的人而言是一大福音,并且是由红帽进行运营。Ansible可以从命令行来运行,不需要使用配置文件。至于比较复杂的任务,Ansible配置通过名为Playbook的配置文件中的YAML语法来加以处理。Playbook还可以使用模板来扩展其功能,目前playbook的模板还是非常丰富的。

Salt类似Ansible,因为它也是基于CLI的工具,采用了推送方法实现客户端通信。它可以通过Git或通过程序包管理系统安装到主服务器和客户端上,客户端会向主服务器提出请求,请求在主服务器上得到接受后,就可以控制该客户端了。这四款自动化运维工具网上的比较很多,但是很难说谁就一定比谁好很多,还是那句话,你的团队具有哪方面的人才就使用哪个,如果非要选出一个我个人推荐ansible,因为基于python实现,开发人员比较好找,同时社区资源活跃,相关的资源和组件也是比较丰富的。

来自文章:企业自动化运维落地的实践经验及运维工具选型对比分析

作者:wykkx 某基金公司 系统机构师

http://www.talkwithtrend.com/Article/241697

 

2.

Ansible、Salt和Puppet主要是操作系统或平台层的编排工具,这3个工具的选择的建议要根据企业实际情况而定,如果安全上对ssh没有特殊限制的、企业运维的服务器数量也不是很多的建议使用Ansible。Ansible学习曲线平滑,使用简单,社区资源丰富。Salt和Puppet性能相对较差,可以根据企业实际情况选择。

分享者:secretpower 某银行

来自社区问答

 

3.

1)Puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,很多大型IT公司均在使用puppet对集群中的软件进行管理和部署。

Puppet、Chef、Ansible、Salt对比_第1张图片

优缺点分析:优点是Web界面生成处理报表、资源清单、实时节点管理,push命令可即刻触发变更,缺点是相对其他工具较复杂、需学习Puppet的DSL或Ruby,安装过程缺少错误校验和生成错误报表。

2)SaltStack是一种全新的基础设施管理方式,部署轻松,在几分钟内可以运行起来,扩展性好,很容易管理上万台服务器,速度够快,服务器之间秒级通讯。

Puppet、Chef、Ansible、Salt对比_第2张图片

优缺点分析:优点是可以使用简单的配置模块或复杂的脚本,Web界面可以看到运行和监控的工作状态、事件日志,扩展能力极强,缺点是缺少生成深度报告的能力。

3)Ansible是基于Python研发的,综合了众多老牌运维工具的优点,实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。在进行大规模部署时,手工配置服务器环境是不现实的,这时必须借助于自动化部署工具。

Puppet、Chef、Ansible、Salt对比_第3张图片

优缺点分析:优点是模块可以用任何语言开发、备管节点不需要安装代理软件、有Web管理界面、安装运行简单,缺点是对windows备管节点需要加强、执行效率相对较低。

下图是Puppet、Saltstack、Ansible这三款运维工具处理能力与处理效率的对比:

Puppet、Chef、Ansible、Salt对比_第4张图片

       各种运维工具只是用于帮助人员进行运维的,每种工具都有其使用的优势领域,Puppet适用于软件自动化配置和部署;SaltStack适用于基础设施管理,在几分钟内可运行起来,很容易管理上万台服务器,速度够快;Ansible适用于批量操作系统配置、批量程序的部署、批量运行命令等。

4.

pytohn开发的Ansible,无agent方式,小规模运维(并发20台一下),软件部署使用,7人以下小团队自己做工具用非常合适。

Saltstack也是python开发的,mq + agent方式部署,master管理1000设备没有问题,开发的api适合单体数据中心部署和对其进行二次portal开发,完成自身业务逻辑,但开源版本不支持aix和hpux,需要向厂商付费才能获得aix和hpux的agent。

Puppet由ruby开发,基本是一个配置管理工具,在Puppet6中去掉了 mco,自己配置管理能力增强,独立的语法需要长时间学习和适应,刷配置失误会导致严重的系统故障业务停止等问题,目前使用时需要谨慎和完全测试。

Chef由ruby开发结构master+mq+agent完成大并发,多模块,可单独编写菜单完成配置管理和命令行管理,但国内使用数量稀少,相应的人才太少,所有功能需要你自学成才。

分享者:asdf-asdf  研究学者

来自社区问答

 

5.

实际上这三个社区活跃度、需求满足程度都差不多,抓阄吧:)

我个人比较喜欢用PuppetAnsible,倒不是说Saltstack不好,是我从开始就在用Puppet,所以,就没有再去学习saltstack的必要了

而Ansible主要是远程命令执行,比较适合做一些“一次性”的动作。

 

分享者:galaxy1975  系统架构师

来自社区问答

 

 

 推荐资料/文章:

  • 企业自动化运维落地的实践经验及运维工具选型对比分析

    http://www.talkwithtrend.com/Article/241871

  • 企业应用级自动化运维的规范标准化、安全风控控制、开源商用选型建设等维度分析

    http://www.talkwithtrend.com/Article/242265

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3803405/blog/3058403

你可能感兴趣的:(Puppet、Chef、Ansible、Salt对比)