2014-02-17 118 views

回答

0

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 
+0

這似乎並沒有幫助。我不想定義劇本中的變量,我想在庫存文件中定義它們。 – rgrinberg

+0

更新了答案,指出清單中不允許使用結構化數據。 –

+0

謝謝,這是我的懷疑,但我無法找到權威的來源。 – rgrinberg