天天看點

《Ansible權威指南》一2.2 Ansible配置檔案解析

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

2.2 ansible配置檔案解析

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

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

(1)[defaults]

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

[defaults]

# inventory =

etcansiblehosts          # 定義inventory

# library =

usrsharemy_modules # 自定義lib庫存放目錄

# remote_tmp =

$home.ansibletmp # 臨時檔案遠端主機存放目錄

# local_tmp =

$home.ansibletmp          # 臨時檔案本地存放目錄

# forks = 5                  # 預設開啟的并發數

# poll_interval

= 15             # 預設輪詢時間間隔

# sudo_user  = root                #

預設sudo使用者

# ask_sudo_pass

= true                 # 是否需要sudo密碼

# ask_pass  = true            #

是否需要密碼

# roles_path =

etcansibleroles    # 預設下載下傳的roles存放的目錄

#

host_key_checking = false           # 首次連接配接是否需要檢查key認證,建議設為false

# timeout = 10                  # 預設逾時時間

# timeout = 10                  # 如沒有指定使用者,預設使用的遠端連接配接使用者

# log_path = varlogansible.log   # 執行日志存放目錄

# module_name =

command                 # 預設執行的子產品

# action_plugins

= usrshareansiblepluginsaction # action插件的存放目錄

callback_plugins = usrshareansiblepluginscallback # callback插件的存放目錄

connection_plugins = usrshareansiblepluginsconnection  # connection插件的

                                                  #

存放目錄

# lookup_plugins

= usrshareansiblepluginslookup # lookup插件的存放目錄

# vars_plugins =

usrshareansiblepluginsvars   # vars插件的存放目錄

# filter_plugins

= usrshareansiblepluginsfilter  # filter插件的存放目錄

# test_plugins =

usrshareansiblepluginstest    # test插件的存放目錄

strategy_plugins = usrshareansiblepluginsstrategy   # strategy插件的存放目錄

# fact_caching =

memory                           # getfact緩存的主機資訊存放方式

retry_files_enabled = false

retry_files_save_path = ~.ansible-retry      #

錯誤重新開機檔案存放目錄

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

(2)[privilege_escalation]

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

[privilege_escalation]

# become=true           # 是否sudo

become_method=sudo     # sudo方式

become_user=root     # sudo後變為root使用者

become_ask_pass=false  # sudo後是否驗證密碼

(3)[paramiko_connection]

定義paramiko_connection配置,該部分功能不常用,了解即可。

[paramiko_connection]   # 該配置不常用到

record_host_keys=false   # 不記錄新主機的key以提升效率

# pty=false           # 禁用sudo功能

(4)[ssh_connection]

ansible預設使用ssh協定連接配接對端主機,該部署是主要是ssh連接配接的一些配置,但配置項較少,多數預設即可。

[ssh_connection]

# pipelining =

false # 管道加速功能,需配合requiretty使用方可生效

(5)[accelerate]

ansible連接配接加速相關配置。因為有部分使用者不滿意ansible的執行速度,是以ansible在連接配接和執行速度方面也在不斷地進行優化,該配置項在提升ansibile連接配接速度時會涉及,多數保持預設即可。

[accelerate]

accelerate_port = 5099                # 加速連接配接端口

accelerate_timeout = 30               # 指令執行逾時時間,機關秒

accelerate_connect_timeout = 5.0  # 連接配接逾時時間,機關秒

accelerate_daemon_timeout = 30        # 上一個活動連接配接的時間,機關分鐘

accelerate_multi_key = yes

(6)[selinux]

關于selinux的相關配置幾乎不會涉及,保持預設配置即可。

[selinux]

libvirt_lxc_noseclabel = yes

(7)[colors]

ansible對于輸出結果的顔色也進行了詳盡的定義且可配置,該選項對日常功能應用影響不大,幾乎不用修改,保持預設即可。

[colors]

# highlight =

white

# verbose = blue

# warn = bright

purple

# error = red

# debug = dark

gray

# deprecate =

# skip = cyan

# unreachable =

red

# ok = green

# changed =

yellow

# diff_add =

green

# diff_remove =

# diff_lines =

cyan

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

繼續閱讀