The solution is to address the variable like this (vars['variableName']):

    - name: Loop
      command: echo {{ item.key }}
      with_dict: "{{ vars[input|lower|regex_replace(' ','')] }}"



Am Dienstag, 31. Mai 2016 14:12:52 UTC+2 schrieb Florian B:
>
> Hi everyone,
>
> I'm trying to get this example to work with ansible 2.0+. It does work 
> correctly with 1.9.
>
> - hosts: localhost
>   vars:
>
>
>     input: "top"
>
>
>     base: &base
>       ? a
>       ? b
>
>
>     top: &top
>       << : *base
>       ? c
>       ? d
>
>     peak: &peak
>       << : *top
>       ? e
>       ? f
>
>   tasks:
>     - debug: var="{{ input|lower|regex_replace(' ','') }}"
>
>
>     - name: Loop
>       command: echo {{ item.key }}
>       with_dict: "{{ input|lower|regex_replace(' ','') }}"
>
> In short, I want to merge the dicts base, top and peak and then loop over 
> all key/value pairs in the corresponding dictionary, depending on the input 
> another function produces (strings).
>
> With ansible 2.0 I get the following error:
>  % ansible --version
> ansible 2.0.0.2 (stable-2.0.0.1 7de237c5a1) last updated 2016/03/15 
> 11:07:49 (GMT +200)
>   lib/ansible/modules/core: (detached HEAD ce6619bf5d) last updated 
> 2016/03/15 11:07:51 (GMT +200)
>   lib/ansible/modules/extras: (detached HEAD 29af26884e) last updated 
> 2016/03/15 11:07:51 (GMT +200)
>   config file = /home/fbuchmeier/.ansible.cfg
>   configured module search path = Default w/o overrides 
>
>  % ansible-playbook -c local with_dict.yml
>  [WARNING]: provided hosts list is empty, only localhost is available
>
>
>
>
> PLAY 
> ***************************************************************************
>
>
> TASK [setup] 
> *******************************************************************
> ok: [localhost]
>
>
> TASK [debug] 
> *******************************************************************
> ok: [localhost] => {
>     "top": {
>         "a": null, 
>         "b": null, 
>         "c": null, 
>         "d": null
>     }
> }
>
>
> TASK [Loop] 
> ********************************************************************
> fatal: [localhost]: FAILED! => {"failed": true, "msg": "ERROR! with_dict 
> expects a dict"}
>
>
> PLAY RECAP 
> *********************************************************************
> localhost                  : ok=2    changed=0    unreachable=0    failed=
> 1
>
> In ansible 1.9 I get my desired result:
>  % ansible --version
> ansible 1.9.6 (detached HEAD 10a38a7652) last updated 2016/04/29 15:14:07 
> (GMT +200)
>   lib/ansible/modules/core: (detached HEAD 6972d0a291) last updated 
> 2016/04/29 15:14:13 (GMT +200)
>   lib/ansible/modules/extras: (detached HEAD 2c073442b0) last updated 
> 2016/04/29 15:14:13 (GMT +200)
>   configured module search path = None
>  
> % ansible-playbook -i environments/localhost  -c local with_dict.yml
>
>
> PLAY [localhost] 
> ************************************************************** 
>
>
> GATHERING FACTS 
> *************************************************************** 
> ok: [localhost]
>
>
> TASK: [debug var="{{ input|lower|regex_replace(' ','') }}"] 
> ******************* 
> ok: [localhost] => {
>     "var": {
>         "top": {
>             "a": null,
>             "b": null,
>             "c": null,
>             "d": null
>         }
>     }
> }
>
>
> TASK: [Loop] 
> ****************************************************************** 
> changed: [localhost] => (item={'key': 'a', 'value': None})
> changed: [localhost] => (item={'key': 'c', 'value': None})
> changed: [localhost] => (item={'key': 'b', 'value': None})
> changed: [localhost] => (item={'key': 'd', 'value': None})
>
>
> PLAY RECAP 
> ******************************************************************** 
> localhost                  : ok=3    changed=1    unreachable=0    failed=
> 0
>
> Do you have any idea how I can get this to work?
>
> Thank you very much,
>
> Florian.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/d60725d2-5edc-4949-9c27-224e6f51d7c1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to