как сделать несколько вещей в loop
Условно говоря , хочу в одном цикле сделать несколько проверок по when: и на каждой проверке делать присваивание
Вот это работает отлично:
- name: Set IP addresses 0.0.0.0 a down interfaces
set_fact:
list_ip_interfaces: '{{ list_ip_interfaces }} + [ { "interface": "{{ vars[item].device }}",
"address": "0.0.0.0",
"netmask": "0.0.0.0" } ]'
when:
- "'ipv4' not in vars[item]"
- "'device' in vars[item]"
loop: "{{ list_interfaces }}"
Хочу поиметь вариант, что бы в одном цикле было больше проверок и присваений, не получается
- name: Get all IP addresses of interfaces
set_fact:
list_ip_interfaces: '{{ list_ip_interfaces }} + [ { "interface": "{{ vars[item].device }}",
"address": "{{ vars[item].ipv4.address }}",
"netmask": "{{ vars[item].ipv4.netmask }}" } ]'
when:
- "'ipv4' in vars[item]"
- "'device' in vars[item]"
list_ip_interfaces: '{{ list_ip_interfaces }} + [ { "interface": "{{ vars[item].device }}",
"address": "0.0.0.0",
"netmask": "0.0.0.0" } ]'
when:
- "'ipv4' not in vars[item]"
- "'device' in vars[item]"
loop: "{{ list_interfaces }}"
Шлёт ошибку синтаксиса
The offending line appears to be:
"netmask": "{{ vars[item].ipv4.netmask }}" } ]'
when:
^ here
Если убираю по два пробела перед list_ip_interfaces, when, то ошибка другая
The offending line appears to be:
- '"device" in vars[item]'
list_ip_interfaces: '{{ list_ip_interfaces }} + [ { "interface": "{{ vars[item].device }}",
^ here
Вообще возможно несколько действий в цикле? Я так и не смог понять (.
а чем консрукция ('ipv4' in vars[item]) and ('device' in vars[item]) не понравилась?
Обсуждают сегодня