- 核心概念
- Ansible
是Ansible
的命令工具,核心执行工具;一次性或临时执行的操作都是通过该命令执行。 - Ansible Playbook
任务剧本(又称任务集),编排定义Ansible
任务集的配置文件,由Ansible
顺序依次执行,yaml
格式。 - Inventory
Ansible
管理主机的清单,默认是/etc/ansible/hosts
文件。 - Modules
Ansible
执行命令的功能模块,Ansible2.3
版本为止,共有1039
个模块。还可以自定义模块。 - Plugins
插件,模块功能的补充,常有连接类型插件,循环插件,变量插件,过滤插件,插件功能用的较少。 - API
提供给第三方程序调用的应用程序编程接口。
- Ansible
每一個 play 包含了一個 task 列表(任務列表).一個 task 在其所對應的所有主機上(通過 host pattern 匹配的所有主機)執行完畢之後,下一個 task 才會執行.有一點需要明白的是(很重要),在一個 play 之中,所有 hosts 會獲取相同的任務指令,這是 play 的一個目的所在,也就是將一組選出的 hosts 對映到 task
如果一個 host 執行 task 失敗,這個 host 將會從整個 playbook 的 rotation 中移除. 如果發生執行失敗的情況,請修正 playbook 中的錯誤,然後重新執行即可.
每個 task 的目標在於執行一個 moudle, 通常是帶有特定的參數來執行.在參數中可以使用變數(variables).
modules 具有”冪等”性,意思是如果你再一次地執行 moudle(譯者注:比如遇到遠端系統被意外改動,需要恢復原狀),moudle 只會執行必要的改動,只會改變需要改變的地方.所以重複多次執行 playbook 也很安全.,所以當遠端系統被人改動時,可以重放 playbooks 達到恢復的目的. playbooks 本身可以識別這種改動,並且有一個基本的 event system(事件系統),可以響應這種改動.(當發生改動時)’notify’ actions 會在 playbook 的每一個 task 結束時被觸發,而且即使有多個不同的 task 通知改動的發生, ‘notify’ actions 只會被觸發一次.Handlers 最佳的應用場景是用來重啟服務,或者觸發系統重啟操作.除此以外很少用到了.