Я провел большую часть дня, пытаясь решить эту проблему, и до сих пор потерпел неудачу. Я создаю несколько сборников игр для автоматизации функций в Splunk и пытаюсь преобразовать список хостов из группы инвентаризации EG.
[search_head]
1.2.3.4
5.6.7.8
Мой ожидаемый (желаемый) результат отладочного вывода игры должен быть: https://1.2.3.4:8089, https://5.6.7.8:8089
Я пытаюсь выполнить это, запустив следующую пьесу на работающем хосте:
---
- name: Build search head list to initialize the captain
hosts: search_head
remote_user: ansible
vars:
inventory_file: ./inventory-ec2-single-site
search_head_uri: "{{ lookup('template', './bootstrap-sh-deployer.j2') }}"
pre_tasks:
- include_vars:
dir: 'group_vars'
extensions:
- yml
- yaml
tasks:
- name: dump array
debug:
msg: "{{ search_head_uri }}"`
С шаблоном bootstrap-sh-deployer.j2
:
{%- set search_head_uri = [] %}
{% for host in groups['search_head'] %}
{%- if search_head_uri.append("https://{{ host }}:8089") %}
{%- endif %}
{%- if not loop.last %}, {% endif -%}
{%- endfor %}
Однако текущая игра возвращает search_head_uri: ", "
, что говорит мне о том, что цикл выполняется, но {{ host }}
не разрешается.