take this playbook for example:
---
- hosts: localhost
gather_facts: no
vars:
in_list:
- value1
- value2
- value3
final_list: []
tasks:
- debug:
var: in_list
- name: parse list
set_fact:
final_list: "{{ final_list + [{'key': item}] }}"
with_items: "{{ in_list }}"
- debug:
var: final_list
it seems that the final_list
is replaced on each iteration by the last set_fact replacement, i.e its not appending to it on each loop.
output:
[root@optima-ansible ILIAS]# ansible-playbook append_to_list.yml
PLAY [localhost] ****************************************************************************************************************************************************************************************************
TASK [debug] ********************************************************************************************************************************************************************************************************
ok: [localhost] => {
"in_list": [
"value1",
"value2",
"value3"
]
}
TASK [parse list] ***************************************************************************************************************************************************************************************************
ok: [localhost] => (item=value1)
ok: [localhost] => (item=value2)
ok: [localhost] => (item=value3)
TASK [debug] ********************************************************************************************************************************************************************************************************
ok: [localhost] => {
"final_list": [
{
"key": "value3"
}
]
}
PLAY RECAP **********************************************************************************************************************************************************************************************************
localhost : ok=3 changed=0 unreachable=0 failed=0
[root@optima-ansible ILIAS]#
i used code from this question
what am i doing wrong?
update: my setup:
[root@optima-ansible ILIAS]# ansible --version
ransible 2.5.1
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.14 (default, Mar 14 2018, 13:36:31) [GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
[root@optima-ansible ILIAS]# rpm -qa --last | grep ansible
ansible-2.5.1-1.fc27.noarch Sun 22 Apr 2018 02:46:30 AM EEST
[root@optima-ansible ILIAS]#
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…