Использование имени группы Dynami c в шаблоне ansible - PullRequest
0 голосов
/ 09 февраля 2020

Я собираю роль для обеспечения нескольких кластеров Kafka. Каждый кластер должен содержать уникальные идентификаторы брокера, а также список узлов Zookeeper. Вот фрагмент кода, который я использую для определения узлов zookeeper:

zookeeper.connect={% for host in groups['zookeeper'] -%} {{ host }}:2181{% if not loop.last %},{% endif %} {%- endfor %}

Я пытаюсь найти способ заменить группы ['zookeeper'] чем-то похожим на следующее:

zookeeper.connect={% for host in groups[{{ zookeeper_cluster_name }}] -%} {{ host }}:2181{% if not loop.last %},{% endif %} {%- endfor %}

Имя zookeeper_cluster_name определено в моем инвентаре, и отладка var = zookeeper_cluster_name показывает, что он входит в мою роль. Парсер продолжает выкладывать ошибки, и я не могу найти правильный синтаксис для указания группы через переменную. Кто-нибудь знает, возможно ли это? Если у кого-то есть пример (или лучший способ подойти к этому), я бы оценил вашу мудрую мудрость.

1 Ответ

0 голосов
/ 09 февраля 2020

Вы используете переменную внутри выражения jinja2. В этом случае вы просто используете имя переменной.

zookeeper.connect={% for host in groups[zookeeper_cluster_name] -%} {{ host }}:2181{% if not loop.last %},{% endif %} {%- endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...