2016-05-06 2 views
0

У меня возникла проблема получения Ansible для динамического выбора группы инвентаризации из блока with_items. Я использую ansible 2.ansible with_items будет интерпретировать

Я пробовал много вариантов, но я не могу найти способ собирать группу, когда я использую переменную в части имени. Я хотел бы знать, если есть что-то вроде Eval в анзибле или дзиндзя, который позволит мне получить доступ к этому, так или иначе, я могу получить к элементу в пределах групп переменных динамически

- 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 
+0

Я полагаю, with_items: "{{}} group_name" работает хорошо – Petro026

ответ

1

Там нет Eval в дзиндзя/анзибль. Но вы должны быть в состоянии получить доступ к группе как

groups["tag_environment_%s"|replace("%s", cw_env)] 
+1

или группа [ "tag_environment _" + cw_env] – Petro026