⾃动化运维⼯具Saltstack与Ansible该如何取舍?
⽬录
Saltstack
简介
saltstack是⼀个配置管理系统,能够维护预定义状态的远程节点。
saltstack是⼀个分布式远程执⾏系统,⽤来在远程节点上执⾏命令和查询数据。
saltstack是运维⼈员提⾼⼯作效率、规范业务配置与操作的利器。
Salt的核⼼功能
使命令发送到远程系统是并⾏的⽽不是串⾏的
使⽤安全加密的协议
使⽤最⼩最快的⽹络载荷
提供简单的编程接⼝
Salt同样引⼊了更加细致化的领域控制系统来远程执⾏,使得系统成为⽬标不⽌可以通过主机名,还可以通过系统属性。⼯作模式⽰意图:
特点
1. SaltStack 采⽤ C/S模式,minion与master之间通过ZeroMQ消息队列通信,默认监听4505端⼝。
2. Salt Master运⾏的第⼆个⽹络服务就是ZeroMQ REP系统,默认监听4506端⼝。
Ansible
简介
Ansible是近年越来越⽕的⼀款运维⾃动化⼯具,其主要功能是帮助运维实现IT⼯作的⾃动化、降低⼈为操作失误、提⾼业务⾃动化率、提升运维⼯作效率。
常⽤于软件部署⾃动化、配置⾃动化、管理⾃动化、系统化系统任务、持续集成、零宕机平滑升级等。
特点
1. Ansible完全基于Python开发
2. Ansible丰富的内置模块,甚⾄还有专门为商业平台开发的功能模块,完全可以满⾜⽇常功能所需。
3. 在Ansible去中⼼化(⽆固定的master)概念下,⼀个简单的复制操作即可完成管理配置中⼼的迁移。
4. Agentless(⽆客户端),客户端⽆需任何配置,由管理端配置好后即可使⽤,这点⾮常诱⼈。
5. ⽆需任何Daemon维护进程即可实现相互间的通信
通信⽅式是基于业内统⼀标准的安全可靠的SSH安全连接
⽆客户端,只需安装SSH、Python即可。
基于OpenSSH通信,底层基于SSH协议(Windows基于PowerShell)。
⽀持密码和SSH认证,建议使⽤公私钥⽅式认证,因为密码认证⽅式的密码需明⽂写配置⽂件,虽然配置⽂件可加密,但会增加Ansible使⽤的复杂度。
⽀持Windows,但仅⽀持客户端,服务端必须是Linux系统。
⼯作模式⽰意图:
ssh工具windows
特点⽐较
综合⽐较
选型
1. 响应速度
SaltStack的master和minion主机是通过ZeroMQ传输数据,⽽Ansible是通过标准SSH进⾏数据传输,SaltStack的 响应速度要⽐Ansible快很多。标准SSH连接的时候⽐较耗费时间,ZeroMQ传输的速度会快很多,所以单单从响应速度⽅⾯考虑SaltStack 会是更好的选择。
2. 安全
Ansible和SaltStack都需要和远程主机进⾏连接,它们的最⼤的安全问题就是MITM攻击,通过伪装成Master主机和远程主机进⾏通信,从⽽进⾏攻击。
SaltStack使⽤ZeroMQ进⾏数据传输,ZeroMQ本⾝数据传输不⽀持加密,SaltStack可以通过使⽤AES数据加密⽅法来对数据进⾏加密传输,但是SaltStack的minion主机以守护进程的⽅式运⾏在远端暴露了很多容易被攻击的点。
Ansible使⽤标准SSH连接传输数据,不需要在远程主机上启动守护进程,并且标准SSH数据传输本⾝就是加密传输,这样远程主机不容易被攻击。因此 Ansible在安全⽅⾯⽐SaltStack做的好。
3. ⾃⾝运维
SaltStack需要在Master和Minion主机启动守护进程,⾃⾝需要检测守护进程的运⾏状态,增加运维成本。Ansible和远端主机之间的 通信是通过标准SSH进⾏,远程主机上只需要运⾏SSH进程就可以进⾏运维操作,SSH是机房主机中⼀般都安装和启动的进程,所以在Ansible进⾏运维的时候只需要关注Ansible主机的运⾏状态。Ansible对机房运维不会增加过多的运维成本。从⼯具本⾝的运维⾓度来说,Ansible要⽐ SaltStack简单很多。
4. 使⽤语法
Ansible的Playbook语法要⽐SaltStack的State语法具有更好的可读性。
总结:Ansible的安全性能⽐SaltStack好,⾃⾝运维简单,使⽤语法可读性更强,虽然在响应速度⽅⾯不如SaltStack,但是在⼤部分应⽤场景下Ansible的响应速度能满⾜需求。因此,在⾦融⾏业的⾃动化运维系统,Ansible⼯具是最好的选择。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论