自动化运维工具Saltstack与Ansible该如何取舍?
目录Saltstack简介特点Ansible简介特点特点比较综合比较选型Saltstack简介saltstack是一个配置管理系统,能够维护预定义状态的远程节点。saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。saltstack是运维人员提高工作效率、规范业务配置与操作的利器。Salt的核心功能使命令发送到远程系统是并行的而不是串行的使用安全加密的协议使用最小最快的
·
Saltstack
简介
- saltstack是一个配置管理系统,能够维护预定义状态的远程节点。
- saltstack是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据。
- saltstack是运维人员提高工作效率、规范业务配置与操作的利器。
- Salt的核心功能
- 使命令发送到远程系统是并行的而不是串行的
- 使用安全加密的协议
- 使用最小最快的网络载荷
- 提供简单的编程接口
- Salt同样引入了更加细致化的领域控制系统来远程执行,使得系统成为目标不止可以通过主机名,还可以通过系统属性。
工作模式示意图:
特点
- SaltStack
采用 C/S模式,minion与master之间通过ZeroMQ消息队列通信,默认监听4505端口。
- Salt Master运行的第二个网络服务就是
ZeroMQ REP系统,默认监听4506端口。
Ansible
简介
- Ansible是近年越来越火的一款运维自动化工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。
- 常用于软件部署自动化、配置自动化、管理自动化、系统化系统任务、持续集成、零宕机平滑升级等。
特点
- Ansible完全
基于Python开发 - Ansible丰富的
内置模块,甚至还有专门为商业平台开发的功能模块,完全可以满足日常功能所需。 - 在Ansible
去中心化(无固定的master)概念下,一个简单的复制操作即可完成管理配置中心的迁移。 Agentless(无客户端),客户端无需任何配置,由管理端配置好后即可使用,这点非常诱人。- 无需任何Daemon维护进程即可实现相互间的通信
- 通信方式是基于业内统一标准的安全可靠的
SSH安全连接- 无客户端,只需安装SSH、Python即可。
- 基于OpenSSH通信,底层基于SSH协议(Windows基于PowerShell)。
- 支持密码和SSH认证,建议使用公私钥方式认证,因为密码认证方式的密码需明文写配置文件,虽然配置文件可加密,但会增加Ansible使用的复杂度。
- 支持Windows,但仅支持客户端,服务端必须是Linux系统。
工作模式示意图:

特点比较
综合比较

选型
- 响应速度
SaltStack的master和minion主机是通过ZeroMQ传输数据,而Ansible是通过标准SSH进行数据传输,SaltStack的 响应速度要比Ansible快很多。标准SSH连接的时候比较耗费时间,ZeroMQ传输的速度会快很多,所以单单从响应速度方面考虑SaltStack 会是更好的选择。 - 安全
Ansible和SaltStack都需要和远程主机进行连接,它们的最大的安全问题就是MITM攻击,通过伪装成Master主机和远程主机进行通信,从而进行攻击。
SaltStack使用ZeroMQ进行数据传输,ZeroMQ本身数据传输不支持加密,SaltStack可以通过使用AES数据加密方法来对数据进行加密传输,但是SaltStack的minion主机以守护进程的方式运行在远端暴露了很多容易被攻击的点。
Ansible使用标准SSH连接传输数据,不需要在远程主机上启动守护进程,并且标准SSH数据传输本身就是加密传输,这样远程主机不容易被攻击。因此 Ansible在安全方面比SaltStack做的好。 - 自身运维
SaltStack需要在Master和Minion主机启动守护进程,自身需要检测守护进程的运行状态,增加运维成本。Ansible和远端主机之间的 通信是通过标准SSH进行,远程主机上只需要运行SSH进程就可以进行运维操作,SSH是机房主机中一般都安装和启动的进程,所以在Ansible进行运维的时候只需要关注Ansible主机的运行状态。Ansible对机房运维不会增加过多的运维成本。从工具本身的运维角度来说,Ansible要比 SaltStack简单很多。 - 使用语法
Ansible的Playbook语法要比SaltStack的State语法具有更好的可读性。
总结:Ansible的安全性能比SaltStack好,自身运维简单,使用语法可读性更强,虽然在响应速度方面不如SaltStack,但是在大部分应用场景下Ansible的响应速度能满足需求。因此,在金融行业的自动化运维系统,Ansible工具是最好的选择。
更多推荐



所有评论(0)