--- - name: Load current Tenks state hosts: localhost tags: - node-networking tasks: - name: Load state from file include_vars: file: "{{ state_file_path }}" name: tenks_state - name: Configure hypervisor networking hosts: hypervisors tags: - node-networking vars: nodes: >- {{ hostvars.localhost.tenks_state[inventory_hostname].nodes | default([]) }} tasks: - name: Configure veth pairs for each node include_role: name: veth-pair vars: veth_pair_peer_bridge_type: "{{ bridge_type }}" veth_pair_peer_bridge: "{{ physnet.1 | bridge_name }}" veth_pair_peer_link_name: "{{ physnet.0 | peer_link_name(physnet.1) }}" veth_pair_source_link_name: "{{ physnet.0 | source_link_name(physnet.1) }}" veth_pair_state: "{{ physnet.0.get('state', 'present') }}" # Loop over each physical network for each node allocated to this host. # Allocations are stored in localhost's vars. loop: >- {{ nodes | subelements('physical_networks') }} loop_control: loop_var: physnet