2017-09-13 57 views
2
所有主機的默認變量

有一個在我的ansible庫存文件的[all:vars]定義如下:正確的方式來定義Ansible

[all:vars] 
ansible_shell_type=bash 
ansible_user=certain_user 
ansible_ssh_common_args="-o ConnectionAttempts=10" 

我打算這樣變量進入ansible.cfg來設置所有主機的默認值。它是以相似的方式工作,還是有任何情況需要考慮? 還有什麼其他選擇可以從庫存文件中刪除[all:vars]

回答

2

當然你也可以在ansible.cfg定義這些價值觀,他們只是有不同的名稱,因此請參考the manual事先:

配置文件中設置的值將應用於所有主機,除非被特定設置覆蓋。

3

考慮將變量移動到/ group_vars/all以實現支持的方式。

3

ansible.cfg是一個配置文件,而不是庫存,你不能把變量放在那裏。

[all:vars]是定義庫存文件內部組的組變量的語法(本例中爲特殊組all)。

如果您想從主庫存文件中分出變量定義(順便說一下,這是首選慣例!),您可能需要閱讀本章:Splitting Out Host and Group Specific Data

摘錄:

除了直接在清單文件存儲變量,主機和組變量可以存儲在單獨的相對於庫存文件

假設清單文件路徑的文件是:

/etc/ansible/hosts 

如果主機被命名爲「桌上足球」,並在集團「羅利」和「網絡服務器」,在以下地點YAML文件變量將被製成用T Ø主機:

/etc/ansible/group_vars/raleigh # can optionally end in '.yml', '.yaml', or '.json' 
/etc/ansible/group_vars/webservers 
/etc/ansible/host_vars/foosball 
+0

這就是爲什麼對同一個問題可能有很多不同的答案的原因。誰知道OP的主要目標是什麼?我看到關於一般組變量的問題,你會看到有關可變配置變量的問題。提高你的答案。 –