Назад | Перейти на главную страницу

Как передать значение группы в файле инвентаризации в файл шаблона jinja2 в ansible

У меня есть инвентарный файл с именем больница. инвентарь и он содержит следующую группу с одним значением.

[dockerSwarmManager]
hp2-3.mydomain.com

Тогда у меня есть имя файла security.json.j2 внутри вызова папки шаблоны. Здесь я хочу указать вышеупомянутое значение в заполнителе ниже.

"wellKnownUrl": "https://_placeholder_value_/my-configuration",

Есть ли прямой способ сделать это?

В качестве альтернативы я объявил переменную в main.yml файл внутри значения по умолчанию каталог и используйте его.

swarm_hostname: "\
   {% for host in groups['dockerSwarmManager'] -%}\
   {{host}}\
   {%- if not loop.last %}, {% endif -%}\
   {%- endfor %}"

Я не думаю, что хорошо использовать цикл только для извлечения одного значения из группы внутри файла инвентаризации, даже если я получаю ожидаемый результат.

Вы ищете Ansible "магическая переменная", а именно" inventory_hostname ". Вы можете использовать его в шаблоне jinja2 следующим образом, используя стиль переменной jinja2 'double brace':

"wellKnownUrl": "https://{{ inventory_hostname }}/my-configuration",

Эта строка шаблона будет преобразована в следующую строку:

"wellKnownUrl": "https://hp2-3.mydomain.com/my-configuration",