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/d5e2b03a-4e69-4bdd-9780-63f7505b29de%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.