Ansible cisco_ios. Изменить настройки только тунельного интерфейса
Я собираю информацию о интерфейсах и после этого мне в туннелях необходимо добавить команду "no cdp enable". С первой частью как-то получилось, а как теперь выбрать только туннели и внести инфу ?
tasks:
- name: Gather facts (ios)
cisco.ios.ios_facts:
gather_subset: min
gather_network_resources:
- l3_interfaces
- name: Store facts to host_vars
copy:
content: "{{ ansible_network_resources | dict2items }}"
dest: "{{ playbook_dir }}/backup/{{ inventory_hostname }}"
- name: configure interface settings
cisco.ios.ios_config:
lines:
- no cdp enable
parents: interface {{ ansible_network_resources.l3_interfaces['name'] }} #какой нужен формат этой строки?
.
.
.
[{"key": "l3_interfaces", "value": [{"name": "Tunnel1", "ipv4": [{"address": "10.111.22.23 255.255.255.224"}]}, {"name": "Tunnel2", "ipv4": [{"address": "10.111.24.23 255.255.255.224"}]}, {"name": "FastEthernet0/0"}, {"name": "FastEthernet0/0.1", "ipv4": [{"address": "10.205.23.2 255.255.255.0"}]}, {"name": "FastEthernet0/0.2", "ipv4": [{"address": "10.205.254.197 255.255.255.252"}]}, {"name": "FastEthernet0/0.3", "ipv4": [{"address": "10.111.210.82 255.255.255.252"}]}, {"name": "FastEthernet0/1"}, {"name": "FastEthernet0/1.3", "ipv4": [{"address": "10.111.21.82 255.255.255.252"}]}, {"name": "Serial0/2/0"}, {"name": "Serial0/2/1"}]}]
Ответы (1 шт):
Автор решения: Vad_V
→ Ссылка
Решение получилось такое. Необходимо было найти нужный индекс и вставить уже его в нужную команду.
- name: configure interface settings
cisco.ios.ios_config:
lines:
- cdp enable
parents: interface {{ ansible_network_resources.l3_interfaces[item].name }}
loop: "{{ lookup('ansible.utils.index_of', ansible_network_resources.l3_interfaces, 'regex', '^Tunnel', 'name', wantlist=True) }} "