0
比如我有host_vars
下一個文件,其中包含下列變量:是否可以在清單文件中指定清單參數?
hosts:
- xxx
- yyy
是否有可能在庫存文件中指定一個這樣的變量?我知道你可以用var=value
指定一個值,但不能是列表var。
比如我有host_vars
下一個文件,其中包含下列變量:是否可以在清單文件中指定清單參數?
hosts:
- xxx
- yyy
是否有可能在庫存文件中指定一個這樣的變量?我知道你可以用var=value
指定一個值,但不能是列表var。
INI庫存文件不允許列表等結構化數據。作爲解決方案,您可以使用問題中的符號來定義組或主機var文件中的列表。在with_items
loop的劇本中使用該列表。
例如:
$ cat playbook.yml
- hosts: [webservers]
vars_files:
- vars/webservers.yml
tasks:
- debug: host={{item}}
with_items: hosts
$ cat inventory
[webservers]
web1
$ cat vars/webservers.yml
hosts:
- xxx
- yyy
$ ansible-playbook -i inventory playbook.yml
PLAY [webservers] *************************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [debug host={{item}}] ***************************************************
ok: [localhost] => (item=xxx) => {
"item": "xxx",
"msg": "Hello world!"
}
ok: [localhost] => (item=yyy) => {
"item": "yyy",
"msg": "Hello world!"
}
PLAY RECAP ********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0
這似乎並沒有幫助。我不想定義劇本中的變量,我想在庫存文件中定義它們。 – rgrinberg
更新了答案,指出清單中不允許使用結構化數據。 –
謝謝,這是我的懷疑,但我無法找到權威的來源。 – rgrinberg