- name: Testing how to access variables hosts: localhost gather_facts: false vars: test_1: - name: vlan 20 id: 20 svi_ip_peer_1: 192.168.77.1/24 svi_ip_peer_2: 192.168.77.2/24 portchannel_id: 20 portchannel_interfaces_peer_1: name: port-channel20 members: - Eth1/5 - Eth1/6 mode: on switchport_mode: access portchannel_interfaces_peer_2: name: port-channel20 members: - Eth1/5 - Eth1/6 mode: on switchport_mode: access hsrp_group: 20 hsrp_vip: 192.168.77.254 hsrp_preempt: enabled hsrp_priority_peer_1: 105 hsrp_priority_peer_2: 100 - name: vlan 30 id: 20 svi_ip_peer_1: 192.168.77.1/24 svi_ip_peer_2: 192.168.77.2/24 portchannel_id: 20 portchannel_interfaces_peer_1: name: port-channel20 members: - Eth1/7 - Eth1/8 mode: on switchport_mode: access portchannel_interfaces_peer_2: name: port-channel20 members: - Eth1/7 - Eth1/8 mode: on switchport_mode: access hsrp_group: 20 hsrp_vip: 192.168.77.254 hsrp_preempt: enabled hsrp_priority_peer_1: 105 hsrp_priority_peer_2: 100 test_2: "{{ test_1 | map(attribute='portchannel_interfaces_peer_1') | map(attribute='members') }}" tasks: - name: Print var ansible.builtin.debug: var: test_2 - name: Print "portchannel_interfaces_peer_1" ansible.builtin.debug: msg: "{{ item }}" loop: "{{ test_1 | map(attribute='portchannel_interfaces_peer_1')}}" - name: Print "members" ansible.builtin.debug: msg: "{{ item }}" loop: "{{ test_1 | map(attribute='portchannel_interfaces_peer_1') | map(attribute='members')}}" # - name: Set members peer 1 # ansible.builtin.set_fact: # peer_1_vpc_interfaces: "{{ item }}" # cacheable: yes # loop: # "{{ test_1 | map(attribute='portchannel_interfaces_peer_1') | map(attribute='members') }}" - name: Print member interfaces ansible.builtin.debug: msg: "{{ item[1] }}" loop: "{{ test_1 | map(attribute='portchannel_interfaces_peer_1') | subelements('members') }}"