第一章 介紹Ansible
1. ansible的特點是什么?
a. ansible使用yaml語法,語言格式簡潔明了。
b. ansible不需要代理,僅僅通過SSH遠程連接就可以控制受管主機,是一種非常便捷、安全的方法。
c. Ansible的功能強大,可以利用ansible部署應用進行配置管理、工作流自動化和網絡化,ansible可以編排應用的整個生命周期。
d. Ansible具有冪等性,同一模塊的多次執行結果相同,避免了重復操作帶來的意外問題。
2. 說出你對于ansible的認識
ansible是一個基于Linux的自動化管理平臺,通過使用playbook描述IT應用基礎架構,實施配置管理,應用部署,任務編排和IT基礎設施的自動化,大大降低了手動編寫代碼的出錯率,提升了運維人員的工作效率。
第二章 實施Ansible PlayBook
1. 描述ansible清單概念并管理靜態清單文件
Ansible清單是被控制節點管理的受控主機的一個集合,可以是單獨的主機,也可以是根據主機的不同特征而分類的主機組,一個主機可以存在于多個主機組。
定義靜態清單文件是將被管理的主機名稱或者ip地址編輯到一個清單文件中,可以是單獨的主機,也可以是主機組,主機組中還可以嵌套主機組,all和ungrouped是始終存在的兩個主機組。
2. 描述ansible配置文件的位置、ansible如何選擇這些文件
在每個ansible項目目錄中創建和編輯兩個文件用于配置ansible的行為和ansible-navigator命令。
(1).創建ansible.cfg文件以適應于多個ansible工具的設置,其中,有[defaults]和[privilege_escalation]兩個基本操作。Defaults用于設置ansible基本操作的默認值,privilege_escalation用于配置ansible如何在受管主機上面進行特權升級
l(2).創建一個yaml格式的文件為ansible-navigator配置文件,具體的文件內容如下圖所示:
3. 如何編寫playbook的基本格式
a. hosts:指定目標主機或主機組(來自 inventory 文件)
b. remote_user:在遠程主機上執行任務的用戶
c. vars:定義變量(可在任務中通過 {{ 變量名 }} 引用)
d. tasks:任務列表,每個任務包含:
e. name:任務描述(可選但推薦,有利于可讀性)
f. 模塊名稱
g. 模塊參數
h. notify:任務執行成功后通知的處理程序
i. handlers:處理程序列表,通常用于響應狀態變化(如配置文件更新后重啟服務)
Playbook 遵循 YAML 語法規范,使用縮進表示層級關系(通常為 2 個空格),# 用于注釋。 Playbook 通常以---表示開頭,以...(可省略)表示結尾,一個Playbook可以包含多個 play(以 - 開頭的區塊)以實現對不同主機組執行不同任務。
4. 如何實施多個play?
在 YAML 文件中按順序定義多個 play 區塊(每個 play 以 - 開頭)即可。多個 play 可以針對不同的主機組執行不同的任務,實現復雜的自動化流程。
5. 實施多個play有什么特點?
- 獨立執行:每個 play 獨立運行,按順序執行(前一個 play 完成后才會執行下一個)
- 目標隔離:通過 hosts 字段指定不同的目標主機組,實現分組管理
- 變量隔離:每個 play 中定義的 vars 僅在當前 play 中有效,不會相互干擾
- 共享資源:可以通過 roles、import_