Ansible неожиданно преобразует списки в строки при объединении списков, может кто-нибудь помочь мне объяснить, почему?
Книга пьес:
---
- hosts: localhost
vars:
list1:
- aaa: 'aaa'
tasks:
- set_fact:
a: 'asdfg'
- set_fact:
list2: "{{ list1|d([]) + [ hostvars['localhost']['a']] }}"
- debug: var=list2
- set_fact:
list3: "{{ list1|d([]) + [ hostvars['localhost']['undefined variable']] }}"
- debug: var=list3
и это результат воспроизведения (лишние части пропущены):
TASK [debug] *************************************************************************************************************************************************************************************************************************************************
Wednesday 05 September 2018 09:52:31 +0200 (0:00:00.071) 0:00:00.203 ***
ok: [localhost] => {
"list2": [
{
"aaa": "aaa"
},
"asdfg"
]
}
...
TASK [debug] *************************************************************************************************************************************************************************************************************************************************
Wednesday 05 September 2018 09:52:31 +0200 (0:00:00.085) 0:00:00.345 ***
ok: [localhost] => {
"list3": "[{'aaa': 'aaa'}, Undefined]"
}
PLAY RECAP ***************************************************************************************************************************************************************************************************************************************************
localhost : ok=5 changed=0 unreachable=0 failed=0
Вторая задача отладки выводит строку вместо ожидаемого dict. Это правильное поведение, я просто не понимаю, или я должен сообщить об ошибке?