2014-02-17 2 views
0

Например, у меня есть файл под host_vars, который содержит следующую переменную:Можно ли указать параметры списка в файле инвентаризации?

hosts: 
    - xxx 
    - yyy 

Можно ли указать переменную, как, что в файле инвентаризации? Я знаю, что вы можете указать одно значение с var=value, но не список var.

ответ

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

Смежные вопросы