ansible with_items будет интерпретировать
У меня возникла проблема с получением Ansible для динамического выбора группы инвентаря из блока with_items. Я использую ANSIBLE 2.
Я перепробовал много вариантов, но не могу найти способ собрать группу, когда использую переменную в части имени. Я хотел бы знать, есть ли что-то вроде eval в ansible или jinja, которое позволит мне получить доступ к этому, или другой способ, которым я могу динамически получить доступ к элементу внутри переменной groups
- hosts: localhost
gather_facts: false
vars:
cw_env: "pprod"
group_name: "{{ 'groups.tag_environment_' + cw_env }}"
tasks:
- name: Test Group variable with items.
debug: msg="{{ item }}"
with_items: "{{ 'groups.tag_environment_' + cw_env }}" # Gives STRING groups.tag_environment_pprod
with_items: "groups.tag_environment_{{cw_env }}" # Gives STRING groups.tag_environment_pprod
with_items: "groups.tag_environment_pprod" # WORKS - gives inventory group members
with_items: "{{ groups.tag_environment_pprod }}" # WORKS - gives inventory group members
1 ответ
Решение
В Джинджа / Ансибле нет эвала. Но вы должны иметь возможность получить доступ к группе как
groups["tag_environment_%s"|replace("%s", cw_env)]