三款自動化軟件總體功能對比
項目 | 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以上版本,對於運維人員使用門檻低。
1) 被管控節點無需安裝Agent
2) 無服務端,使用是直接調用控制端命令或者腳本。
3) 基於模塊工作, 可以使用任意語言開發模塊
4) 基於yaml語法編寫playbook
5) 定義的任務已存在則不會做任何事情,意味着在同一臺服務器上多次執行同一個playbook是安全的
Ansible缺點:
1) 學習成本:需要學習Ansible自定義的腳本語法規則。
2) 安裝成本:控制主機需是一臺非Windows遠程主機,也就是說至少要有1臺遠程Server。
3) 易用性:因爲必須有遠程主控機,若本地有文件需同步,則需先將文件傳輸到對應的主控機,才能夠做分發同步。
界面預覽:
因Ansible爲終端命令模式,暫無預覽界面。
二、SaltStack
SaltStack 是一種基於 C/S 架構的服務器基礎架構集中化管理平臺,管理端稱爲 Master,客戶端稱爲 Minion。
SaltStack 具備配置管理、遠程執行、監控等功能。與另外兩個工具相比,SaltStack架構更復雜功能更繁雜。
官網
基本架構
SaltStack功能特點:
1) 主從集中化管理
2) 功能強大、擴展性強、支持API及自定義模塊
3) 主控端(master)和被控端(minion)基於證書認證,安全可靠
4) 執行性強強勁高效
SaltStack缺點:
1) 學習成本:需要學習SaltStack自定義的State語法規則
2) 運維成本:因其C/S結構,相對於另外兩個系統,每臺被管理機器上都需要裝客戶端。
3) 安裝成本:因其架構複雜度,系統依賴組件更多,對人員運維能力要求更高。
4) 易用性:因遠程主控機爲必備條件,若本地有文件需同步,則需先將文件傳輸到對應的主控機,然後才能夠做分發同步。
界面預覽:
三、BatchShell
BatchShell是一款基於SSH2、FTP、FTPS、Telnet等多協議自動化運維工具,具備Windows、Mac、Linux等多終端版本,
可以將本地、遠程主機文件同時同步到多個遠程服務器,並可在多個遠程服務器上同時執行命令。
與另外兩個工具相比,BatchShell更像是Xshell+Ansible的組合。
官網
基本架構
功能特點:
1) 無學習成本,支持原生Shell,也支持Ansible、SaltStack腳本
2) 內含文件編輯器,支持本地、遠程文件在線編輯,替換、保存、對比
3) 支持文件本地版本控制,實現文件修改歷史回溯
4) 支持跨主機文件右鍵拷貝、複製功能
5) 支持跨網絡多主機文件同步與命令執行
6) 支持本地、遠程文件檢索功能
7) 支持可視化任務調度,包括文件同步、命令執行
8) 無需遠程部署,本地文件開箱即用。
BatchShell缺點:
1) 附屬功能:與另外兩款工具相比,該軟件的極簡風格使得很多常用腳本需使用者自己定製,軟件本身不附帶。
界面預覽: