У меня есть инвентарный файл с именем больница. инвентарь и он содержит следующую группу с одним значением.
[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",