2016-09-16 8 views
0

Я видел возможность Переберите адреса файла инвентаризации, делая что-то вроде следующего:Петля через анзибль хостов на основе игры

{% for url in groups['kafka'] %} 
    {%- if url == ansible_fqdn or url in ansible_all_ipv4_addresses 
    or (kafka_id is defined and loop.index0 == kafka_id | int) -%} 
     broker.id={{loop.index0}} 
    {% endif %} 
{% endfor %} 

Проблема с этой идеей, у меня есть несколько различных «Кафу "введите хосты, каждый из которых будет делать что-то немного другое. Мне интересно, есть ли способ передать переменную для групп ['kafka'] через учебник, а не жестко кодировать его в шаблоне. Таким образом, я использую только хосты для конкретной игры и могу использовать один и тот же шаблон для всех разных игр.

+0

Я думаю, вы можете сделать это легко, но, пройдя свое подробное описание и пытаясь понять, что вы имели в виду, это настоящая боль. Почему бы вам не опубликовать свой файл инвентаря, учебник и попросить заполнить эту часть? – techraf

ответ

0

Это была моя ошибка за попытку по-прежнему обернуть группы ['FOO'] кавычками. Я был в состоянии установить переменную внутри пьес и передать ее, выполнив следующие действия:

, а затем с этим в моем шаблоне дзиндзя.

% for url in groups[kafka-bts] %} 
    {%- if url == ansible_fqdn or url in ansible_all_ipv4_addresses 
    or (kafka_id is defined and loop.index0 == kafka_id | int) -%} 
     broker.id={{loop.index0}} 
    {% endif %} 
{% endfor %} 
Смежные вопросы