[Закрыто] Это ошибка в Ansible v2.5.1, см. Комментарий ниже.
Я хочу создать новый список на основе словаря. Поэтому я пытаюсь использовать set_fact
и loop
, но переменная содержит только последнее значение (не список)
Я попробую более простой пример без словаря. Я использую этот веб-сайт: https://ttl255.com/ansible-appending-to-lists-and-dictionaries/. И он не работает, как ожидалось.
---
- name: Append to list
hosts: localhost
vars:
devices: []
cisco:
- CiscoRouter01
- CiscoRouter02
- CiscoRouter03
- CiscoSwitch01
arista:
- AristaSwitch01
- AristaSwitch02
- AristaSwitch03
tasks:
- name: Add Cisco and Airsta devices to the list
set_fact:
devices: "{{ devices + [item] }}"
with_items:
- "{{ cisco }}"
- "{{ arista }}"
- name: Debug list
debug:
var: devices
verbosity: 0
Выписка из вывода:
TASK [Debug list] *********************************************************************************************************
ok: [localhost] => {
"devices": [
"AristaSwitch03"
]
}
Ожидаемое:
TASK [Debug list] *********************************************************************************************************
ok: [localhost] => {
"devices": [
"CiscoRouter01",
"CiscoRouter02",
"CiscoRouter03",
"CiscoSwitch01",
"AristaSwitch01",
"AristaSwitch02",
"AristaSwitch03"
]
}
Я использую ANSIBLE версию: 2.5.1