Ansible 主機配置清單檔案

2021-10-04 02:11:10 字數 3502 閱讀 6933

參考至官方文件,官方文件包含了清單檔案的 yaml 寫法

在通過 ansible 操作目標主機之前,你需要先在 inventory(主機清單)中配置目標主機資訊。

預設情況下主機清單儲存在系統的 /etc/ansible/hosts 檔案中,你也可以通過命令列選項指定其它的清單檔案 -i

主機清單配置預設格式為 ini,下面是乙個主機清單配置例子:

[web]

web1

web2

192.168

.199

.165

上述配置中方括號為組名,web1 和 192.168.199.165 為被監控主機的網域名稱或 ip。也可以是主機名,但此時需要指定主機 ip 環境變數

[web] 

node ansible_host=

192.168

.199

.172

預設採用金鑰認證,如果沒有金鑰認證,那麼你需要配置主機密碼環境變數

[web] 

www.abc.com1 ansible_user=root ansible_password=

123456

你也可以對指定組下的主機進行統一的環境變數配置:

6379如果主機名或 ip 是有序有規則的,你還可以採用數字或字元範圍格式,而不是列出每個主機名:

[webservers]

www[

01:50

].example.com

[databases

]db-

[a:f]

.example.com

組還支援繼承(巢狀),其格式為 組名+":children" 組成,如下:

[shenzhen]

host1

host2

[guangzhou]

host3

host4

[guangdong:children]

shenzhen

guangzhou

[guangdong:vars]

tomcat=

192.168

.8.8

nginx=

192.168

.8.66

apache=

192.168

.8.77

zabbix=

192.168

.8.88

[china:children]

guangdong

beijing

shanghai

上面我指定了深圳組有 host1、host2,廣州組有host3、host4。廣東組包含深圳和廣州,同時為該組內的所有主機指定了四個環境變數。後又設定了乙個中國組,包含廣東、北京、上海。

所有主機都屬於兩個隱式的組:

環境變數除了寫在主機清單檔案中,還可以單獨儲存在單個檔案中。

我們可以在主機清單檔案的同級目錄中建立兩個目錄 「group_vars」 和 「host_vars」,分別儲存組變數與主機變數檔案。

如我們在主機清單檔案中宣告了組 test,此時在 group_vars 目錄下建立乙個名為 test 的檔案(該檔案為 yaml 格式),其內容如下:

tomcat: 192.168

.8.8

此時 test 組中的主機將會包含 tomcat 這個環境變數。

當 「group_vars」 或 「host_vars」 外部環境變數檔案與主機清單檔案中的環境變數衝突時,前者優先順序更高。

ansible 定義了一些固定的環境變數名,這些環境變數將會影響 ansible 的行為。

ansible_connection #主機連線型別,這可以是任何 ansible 連線外掛程式的名稱,如 smart、ssh、paramiko、local

ansible_ssh_host # 將要連線的遠端主機名.與你想要設定的主機的別名不同的話,可通過此變數設定.

ansible_ssh_port # 連線埠號(預設22)

ansible_ssh_user # 連線主機時的使用者名稱

ansible_ssh_pass # 用於驗證主機的密碼

ansible_ssh_private_key_file # ssh 使用的私鑰檔案.適用於有多個金鑰,而你不想使用 ssh **的情況.

ansible_ssh_common_args # 此設定附加到 sftp,scp 和 ssh 的預設命令列

ansible_sftp_extra_args # 此設定附加到預設 sftp 命令列

ansible_scp_extra_args # 此設定附加到預設 scp 命令列

ansible_ssh_extra_args # 此設定附加到預設 ssh 命令列

ansible_ssh_pipelining # 確定是否使用 ssh 管道。 這可以覆蓋 ansible.cfg 中得設定

ansible_shell_type # 目標系統的 shell 型別,預設情況下命令的執行使用 'sh' 語法,可設定為 'csh' 或 'fish'

ansible_python_interpreter # 目標主機的 python 路徑,適用於的情況: 系統中有多個 python, 或者命令路徑不是"/usr/bin/python",比如 *bsd, 或者 /usr/bin/python

ansible_interpreter # 這裡的""可以是 ruby、perl 或其他語言的直譯器,作用和ansible_python_interpreter 類似

ansible_shell_executable # 這將設定 ansible 控制器將在目標機器上使用的 shell,覆蓋 ansible.cfg 中的配置,預設為 /bin/sh

ansible指定其他主機清單配置檔案

預設情況下主機清單儲存在系統的 etc ansible hosts 檔案中 當主機分組不同時可以指定其他的主機清單檔案,避免配置檔案很臃腫 你也可以通過命令列選項指定其它的清單檔案 i root zabbix server 10 29 ansible vim centos c75 192.168.7...

主機清單,ansible模組

1 基於密碼的方式 root localhost vim etc ansible hosts web01 192.168.13.20 ansible ssh user root ansible ssh port 22 ansible ssh pass 1 web02 192.168.15.100 a...

Ansible2 主機清單

ansible 通過讀取預設的主機清單配置 etc ansible hosts,可以同時連線到多個遠端主機上執行任務,預設路徑可以通過修改 ansible.cfg 的 hostfile 引數指定路徑。對於 etc ansible hosts最簡單的定義格式像下面 1 簡單的主機和組 mail yan...