三款自动化软件总体功能对比
项目 | SaltStack | Ansible | BatchShell |
开发语言 | Python | Python | Java |
是否有客户端 | 有 | 无 | 有 |
是否支持二次开发 | 支持 | 支持 | 支持 |
服务器与远程机器是否相互验证 | 是 | 是 | 是 |
服务器与远程机器的通信是否加密 | 是,使用AES加密 | 是,使用OpenSSH | 是,使用OpenSSH、FTPS等多种加密协议 |
平台支持 | BSD, Linux , Mac OS X,Solaris,Windows | AIX , BSD , HP-UX , Linux,Mac OS X ,Solaris | AIX , BSD , HP-UX , Linux,Mac OS X, Solaris |
是否提供Web UI | 提供 | 商业版本提供 | 提供 |
配置文件格式 | YAML | YAML | 原生Shell |
命令行执行 | 支持 | 支持 | 支持 |
是否有客户端 | 有 | 无 | 有 |
是否支持二次开发 | 支持 | 支持 | 支持 |
可视化文本编辑、查询、替换 | 无 | 无 | 支持 |
- Ansible
Ansible 是一个能实现批量部署的自动化运维工具,基于python开发,能实现批量系统配置,批量部署程序,批量运行命令。Ansible主要是提供一种批量部署的框架,系统由控制主机和被管理主机组成。
官网
基本架构
Ansible功能特点:
部署较为简单, 只需要在控制主机上部署ansible环境,被控制端上只要求安装ssh和python 2.5以上版本,对于运维人员使用门槛低。
- 被管控节点无需安装Agent
- 无服务端,使用是直接调用控制端命令或者脚本。
- 基于模块工作, 可以使用任意语言开发模块
- 基于yaml语法编写playbook
- 定义的任务已存在则不会做任何事情,意味着在同一台服务器上多次执行同一个playbook是安全的
Ansible缺点:
- 学习成本:需要学习Ansible自定义的脚本语法规则。
- 安装成本:控制主机需是一台非Windows远程主机,也就是说至少要有1台远程Server。
- 易用性:因为必须有远程主控机,若本地有文件需同步,则需先将文件传输到对应的主控机,才能够做分发同步。
界面预览:
因Ansible为终端命令模式,暂无预览界面。
- SaltStack
SaltStack 是一种基于 C/S 架构的服务器基础架构集中化管理平台,管理端称为 Master,客户端称为 Minion。SaltStack 具备配置管理、远程执行、监控等功能。与另外两个工具相比,SaltStack架构更复杂功能更繁杂。
官网
基本架构
SaltStack功能特点:
- 主从集中化管理
- 功能强大、扩展性强、支持API及自定义模块
- 主控端(master)和被控端(minion)基于证书认证,安全可靠
- 执行性强强劲高效
SaltStack缺点:
- 学习成本:需要学习SaltStack自定义的State语法规则
- 运维成本:因其C/S结构,相对于另外两个系统,每台被管理机器上都需要装客户端。
- 安装成本:因其架构复杂度,系统依赖组件更多,对人员运维能力要求更高。
- 易用性:因远程主控机为必备条件,若本地有文件需同步,则需先将文件传输到对应的主控机,然后才能够做分发同步。
界面预览:
- BatchShell
BatchShell是一款基于SSH2、FTP、FTPS、Telnet等多协议自动化运维工具,具备Windows、Mac、Linux等多终端版本,可以将本地、远程主机文件同时同步到多个远程服务器,并可在多个远程服务器上同时执行命令。与另外两个工具相比,BatchShell更像是Xshell+Ansible的组合。
官网
基本架构
功能特点:
- 无学习成本,支持原生Shell,也支持Ansible、SaltStack脚本
- 内含文件编辑器,支持本地、远程文件在线编辑,替换、保存、对比
- 支持文件本地版本控制,实现文件修改历史回溯
- 支持跨主机文件右键拷贝、复制功能
- 支持跨网络多主机文件同步与命令执行
- 支持本地、远程文件检索功能
- 支持可视化任务调度,包括文件同步、命令执行
- 无需远程部署,本地文件开箱即用。
BatchShell缺点:
- 附属功能:与另外两款工具相比,该软件的极简风格使得很多常用脚本需使用者自己定制,软件本身不附带。
界面预览: