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)]
Другие вопросы по тегам