天天看點

《Ansible權威指南 》一第2章 Ansible基礎元素介紹

本節書摘來自華章出版社《ansible權威指南 》一書中的第2章,第2.1節,李松濤 魏 巍 甘 捷 著更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

第1章介紹了ansible的功能作用、通信發展史、基礎的安裝部署及處理ansible安裝問題所需的python多環境管理工具pyenv和virutalenv。在前期基本工作準備妥當的基礎上,本章進一步深入學習ansible的基礎元素,會相繼接觸ansible目錄結構簡介、ansible系列指令、ansible inventory配置規範、ansible模式比對規則等,其中部分内容,諸如inventory、ansible-playbook等在後續涉及章節會更深入介紹。本章主要是為大家呈現ansible及系列指令的基礎入門介紹,

所介紹的内容互相之間沒有緊密關系,可選擇性地閱讀感興趣章節。

2.1 ansible目錄結構介紹

ansible是開源工具,整個開發過程或二次開發均遵循gpl協定,是以所有源碼均可見。作為一款日常工作所需的核心軟體,我們有必要知道其目錄分布及各目錄功能。通過如下指令我們可以擷取ansible所有檔案存放目錄:

該指令輸出内容較多,大緻分為如下幾類:

整體的目錄概要可參考如圖2-1所示的ansible目錄樹結構。

《Ansible權威指南 》一第2章 Ansible基礎元素介紹

其中,如下目錄運維常要配置,需熟練掌握。

1)配置檔案目錄/etc/ansible/,主要功能為:inventory主機資訊配置、ansible工具功能配置等。所有ansible的配置均存放在該目錄下,運維日常的所有配置類操作也均基于此目錄進行。

2)執行檔案目錄/usr/bin/,主要功能為:ansible系列指令預設存放目錄。ansible所有的可執行檔案均存放在該目錄下。

在/usr/lib/pythonxxx/site-packages/下,該目錄是系統目前預設的python路徑,因為ansible是基于python編寫的,是以ansible的所有lib庫檔案和子產品檔案也均存放于該目錄下。希望了解ansible源碼的話可至該目錄下檢視其工作原理,當然也可至github上下載下傳曆史或最新ansible版本。

2.2 ansible配置檔案解析

inventory用于定義ansible的主機清單配置,ansible的自身配置檔案隻有一個,即ansible.cfg,ansible安裝好後它預設存放于/etc/ansible/目錄下。ansible.cfg配置檔案可以存在于多個地方,ansible讀取配置檔案的順序依次是目前指令執行目錄→使用者家目錄下的.ansible.cfg→/etc/ansible.cfg,先找到哪個就使用哪個的配置。其ansible.cfg配置的所有内容均可在指令行通過參數的形式傳遞或定義在playbooks中。

配置檔案ansible.cfg約有350行語句,大多數為注釋行預設配置項。該檔案遵循ini格式,分為如下幾類配置。

該類配置下定義正常的連接配接類配置,如inventory、library、remote_tmp、local_tmp、forks、poll_interval、sudo_user、ask_sudo_pass、ask_pass、transport、remote_port等。

[defaults]

上述是日常可能用到的配置,這些多數保持預設即可。

(2)[privilege_escalation]

出于安全角度考慮,部分公司不希望直接以root的進階管理者權限直接部署應用,往往會開放普通使用者權限并給予sudo的權限,該部配置設定置主要針對sudo使用者提權的配置。

上面盡可能全地介紹了運維工作中可能需要修改的配置選項,除了在關閉首次連接配接提示(host_key_checking = false)或提速調整([accelerate]區域塊配置調整)時可能會稍做調整,其中絕大多數選項預設即可,ansible安裝好後無需任何改動即可使用。