1:Ansible的使用者
------>Ansible的使用者來源於多種維度,(1):CMDB(Configuration Management Database,配置管理數據庫),CMDB存儲和管理着企業的IT架構中的各項配置信息,是構建ITIL項目的核心工具,運維人員可以組合CMDB和Ansible,通過CMDB直接下發指令調用Ansible工具集完成指定的目標。(2):openstack/AWS方式,即私有雲/公有雲方式,Ansible除了豐富的內置模塊,同時也提供了豐富的API語言接口,例如:PHP\PYTHON\PERL等。基於公有雲和私有雲,Ansible以API調用的方式運行。(3):USERS(用戶)直接使用Ad-Hoc臨時命令集調用Ansible工具集來完成任務執行。(4):用戶預先編寫好的Ansible PlayBooks,通過執行playbooks中預先編排好的任務集按序完成任務執行。
2:Ansible的組成
------>Ansible主要由一下6部分組成
- Ansible Playbooks:任務集,編排定義Ansible任務集的配置文件,由Ansible順序依次執行,通常是json格式的YML文件。
- Inventory:Ansible管理主機的清單。
- Modules:Ansible執行命令的功能模塊,多數為內置的核心模塊,也支持自定義
- Plugins:模塊功能的補充,如連接類型插件、循環插件、變量插件、過濾插件等,改功能不常用。
- API:供第三方程序調用的應用程序編程接口;
- Ansible:此處指的是組合nventory、Modules、Plugins、API的Ansible命令工具,其為核心執行工具
3:工作流程

---------->上圖展示了Ansible組建調用關系,使用者使用Ansible或Ansible-playbooks時,在服務器終端輸入Ansible的Ad-Hoc命令集或palybook后,Ansible會遵循預先編排的規則將Playbooks逐條拆解為Play,再將paly組織成Ansible可識別的任務(Task),隨后調用任務涉及的所有模塊(modules)和插件(plugins),根據Inventory中定義的主機列表通過SSH將任務集以臨時文件或命令的形式傳輸到遠程客戶端執行並返回執行結果,如果是臨時文件,則執行完畢后自動刪除。
PS:本文的產生來自於Ansible權威指南一書。
