常见的自动化运维工具: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实现,开发人员比较好找,同时社区资源活跃,相关的资源和组件也是比较丰富的。

posted @ 2021-09-07 16:31  苦读二十年  阅读(1093)  评论(0编辑  收藏  举报