ansible是新出現的自動化運維工具,基于Python開發,集合了眾多運維工具(Puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。
產品概述
ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。主要包括:
(1)、連接插件connection plugins:負責和被監控端實現通信;
(2)、host inventory:指定操作的主機,是一個配置文件里面定義監控的主機;
(3)、各種模塊核心模塊、command模塊、自定義模塊;
(4)、借助于插件完成記錄日志郵件等功能;
(5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務。
開發歷史
Ansible最初由Michael DeHaan編寫,并于2015年被Red Hat收購。它是無代理的,通過SSH或Windows遠程管理機制來建立臨時遠程連接。Ansible的控制節點在大多數已安裝Python的類Unix系統上執行,包括安裝了wsl的Windows系統。系統配置部分是通過使用它自己的聲明式語言來定義的。
產品特點
設計目標
Ansible的架構設計目標包括本質上為最小、一致性、安全和可靠的。如果小心地撰寫程序,Ansible playbook腳本文件可以是冪等的,以防止對受控系統產生意外的副作用。Playbook使用基于YAML和Jinja模板的簡單敘述性語言,僅需要最少的學習。
控制節點
控制節點(主控主機)主要是在管理(協調)目標機器(稱為"存儲庫"的節點)的運作。控制節點僅適用于Linux等操作系統,不支持Windows操作系統。節點是由控制節點通過SSH來管理。
儲存庫配置
目標節點的位置是通過位于`/etc/ansible/hosts`的清單配置列表(INI或YAML格式)來指定。配置文件列出了Ansible可訪問的每個節點的IP地址或主機名稱,并可以用群組的方式來分配節點。
Ansible自動化平臺(Ansible 自動化技術 Platform)是一個REST API、Web服務和基于Web的界面(應用程序),旨在使具有廣泛IT技能的人更容易使用Ansible。它是一個由多個組件組成的平臺,包括開發人員工具、操作界面以及自動化網絡,以實現跨數據中心的大規模自動化任務。AAP是Red Hat, Inc.支持的商業產品,但衍生了17個以上的上游開源項目,包括AWX上游項目(Ansible Tower衍生自該項目的前身),該項目自2017年9月開始開源。
平臺支援
控制機器必須是Linux/unix主機,并且需要Python 2.7或3.5。托管節點(如果它們是類Unix)必須具有Python 2.4或更高版本。從1.7版本開始,Ansible還可以管理Windows節點。在這種情況下,將使用WS-Management協議支持的本機PowerShell遠程處理,而不是SSH。Ansible可以部署到裸機主機、虛擬機和云環境。
AnsibleFest 是讓 Ansible 社群用戶、貢獻者等人參加的年度研討會。
參考資料 >