自动化运维工具对比

ansible saltstack puppet 自动化运维工具对比

一、基础介绍

ansible基础介绍可参考:http://kaliarch.blog.51cto.com/8966921/1971185

puppet基础介绍可参考:http://kaliarch.blog.51cto.com/8966921/1973736

saltstack基础介绍可参考:http://kaliarch.blog.51cto.com/8966921/1975219

二、技术特性介绍

名称 Puppet SaltStack Ansible
开发语言 Ruby Python Python
客户端
二次开发 不支持 支持 支持
通信验证
加密方式 标准SSL协议 AES加密 OpenSSH
平台支持 AIX,BSD,HP-UX,Linux,Mac OS X,Solaris,Windows BSD,Linux,Mac OS X,Solaris,Windows AIX,BSD,HP-UX,Linux,Mac OS X,Solaris
配置文件格式 Ruby语法格式 YAML YAML
Web UI 提供 提供 提供(商业版本)
命令执行 不支持(配置模块可实现) 支持 支持

三、优缺点对比

1、ansible

优点

1、基于模块工作的,模块可以用任何语言开发
2、模块化(真正工作)
3、轻量级
4、可以二次开发
5、部署简单
6、无需安装客户端
7、易学习,成本低

缺点

1、没有提供web界面(社区版)
2、无法管理windows
3、执行效率低

2、saltstack

优点
1、支持并发
2、web界面可以看到运行的工作,事件日志
3、可以二次开发
4、也可以不安装客户端
5、官方文档质量好
6、web界面友善
7、效率高

缺点

1、需要安装客户端,部署麻烦
2、学习成本相对较高

3、puppet

优点

1、web界面对用户非常由好
2、支持windows平台
3、push命令可以即可触发变更

缺点

1、学习成本较高,需学习Puppet的DSL或Ruby
2、不支持二次开发
3、需要安装客户端

ansible与saltstack的对比

https://infogram.com/--1ggk26r8zz1k2n0

1、响应速度
ansible利用ssh进行传输,salt利用ZeroMQ进行传输,效率会快很多,所以单单从响应速度方面考虑SaltStack会
是更好的选择。但是在一般的运维场景下Ansible的响应速度也可以满足需求。

2、安全
Ansible和SaltStack都需要和远程主机进行连接,它们的最大的安全问题就是MITM攻击,通过伪装成Master主机和
远程主机进行通信,从而进行攻击。

SaltStack使用ZeroMQ进行数据传输,ZeroMQ本身数据传输不支
持加密,SaltStack可以通过使用AES数据加密方法来对数据进行
加密传输,但是SaltStack的minion主机以守护进程的方式运行
在远端暴露了很多容易被攻击的点。

Ansible使用标准SSH连接传输数据,不需要在远程主机上启动守
护进程,并且标准SSH数据传输本身就是加密传输,这样远程主
机不容易被攻击。也不是说Ansible就可以完全避免被攻击,
Ansible使用paramiko库进行SSH连接,paramiko是一个有很不
错记录SSH连接的python库。Ansible可以通过配置
StrictHostKeyChecking参数,使得远程主机上的keys和之前连
接不一样的时候Ansible没有及时感知和提醒用户。但是Ansible
可以通过修改配置文件和配置一个合适的known_hosts文件来解
决这个问题,因此Ansible在安全方面还是比SaltStack做的
好。

3、是否每台服务器需要安装客户端

4、大规模并发的能力

    
5、开源社区的对接

6、学习的门槛
ansibe有一个galaxy站点:Ansible Galaxy
这个站点集合了3000多个第三方开发的Role/Playbook。

salt也有一些预先写好的Formulas(Formulas are pre-written Salt States)
官方地址:Salt Formulas
github地址:Salt Stack Formulas · GitHub
目前已有的Formulas大概在200个左右,比ansible galaxy少了一个数量级,不过大部分常用软件也覆盖到了。

7、执行机制

https://www.cnblogs.com/f-ck-need-u/p/7580170.html
https://pylixm.cc/posts/2017-09-01-Salt-pub-sub.html

四、

对于自东运维工具来说,主要有两种配置管理
1、推模式
2、拉模式

推模式

推模式典型代表就是ansbile,推模式有一个中心节点,将最新的配置信息推送到各个节点上。

推模式的瓶颈就在主节点上,如果同时有1000台服务器需要更新配置,效率就比较慢

拉模式

拉模式典型代表就是puppet,这种模式主张去中心化,一般都需
要在资产服务器上安装agent,定时获取该结点的配置信息,更
具配置信息配置该节点

你可能感兴趣的:(自动化运维工具对比)