[WARNING]: Could not match supplied host pattern, ignoring: unprovisioned [WARNING]: Found variable using reserved name: hosts PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Generic readiness tests] ************************************************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/ssh.yml for dut => (item=ssh) TASK [Check if 'sshpass' is installed] ***************************************** ok: [dut -> localhost] TASK [Check for 'timeout' command] ********************************************* ok: [dut -> localhost] TASK [Execute local ssh command to check ssh readiness] ************************ FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (50 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (49 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (48 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (47 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (46 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (45 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (44 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (43 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (42 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (41 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (40 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (39 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (38 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (37 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (36 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (35 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (34 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (33 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (32 retries left). ok: [dut -> localhost] TASK [Confirm dut SSH server works] ******************************************** ok: [dut] => msg: Node dut is ready. TASK [Find device readiness script] ******************************************** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Wait for device to become ready] ***************************************** skipping: [dut] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, h1, h2, h3, v1, v2, v3 TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Find configuration template for normalize] ******************************* ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Deploy normalize configuration] ****************************************** skipping: [dut] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, h1, h2, h3, v1, v2, v3 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Find configuration template for initial] ********************************* ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [h1] => msg: |- initial configuration for h1 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.0.2/24 dev eth1 2>/dev/null set -e ip addr add 172.16.0.2/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=0 set +e ip -6 addr del 2001:db8:2::2/64 dev eth1 2>/dev/null set -e ip -6 addr add 2001:db8:2::2/64 dev eth1 ip link set dev eth1 mtu 1500 ok: [h2] => msg: |- initial configuration for h2 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.42.3/24 dev eth1 2>/dev/null set -e ip addr add 172.16.42.3/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=0 set +e ip -6 addr del 2001:db8:cafe:42::3/64 dev eth1 2>/dev/null set -e ip -6 addr add 2001:db8:cafe:42::3/64 dev eth1 ip link set dev eth1 mtu 1500 ok: [h3] => msg: |- initial configuration for h3 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.42.42/24 dev eth1 2>/dev/null set -e ip addr add 172.16.42.42/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=0 set +e ip -6 addr del 2001:db8:cafe:42::2a/64 dev eth1 2>/dev/null set -e ip -6 addr add 2001:db8:cafe:42::2a/64 dev eth1 ip link set dev eth1 mtu 1500 ok: [v1] => msg: |- initial configuration for v1 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.1.4/24 dev eth1 2>/dev/null set -e ip addr add 172.16.1.4/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=0 set +e ip -6 addr del 2001:db8:2:1::4/64 dev eth1 2>/dev/null set -e ip -6 addr add 2001:db8:2:1::4/64 dev eth1 ip link set dev eth1 mtu 1500 ok: [v2] => msg: |- initial configuration for v2 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.42.5/24 dev eth1 2>/dev/null set -e ip addr add 172.16.42.5/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=0 set +e ip -6 addr del 2001:db8:cafe:42::5/64 dev eth1 2>/dev/null set -e ip -6 addr add 2001:db8:cafe:42::5/64 dev eth1 ip link set dev eth1 mtu 1500 ok: [v3] => msg: |- initial configuration for v3 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.42.64/24 dev eth1 2>/dev/null set -e ip addr add 172.16.42.64/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=0 set +e ip -6 addr del 2001:db8:cafe:42::40/64 dev eth1 2>/dev/null set -e ip -6 addr add 2001:db8:cafe:42::40/64 dev eth1 ip link set dev eth1 mtu 1500 ok: [dut] => msg: |- initial configuration for dut ========================================= hostname dut ! domain lookup disable ! lldp no management enable ! domain ipv4 host h1 172.16.0.2 domain ipv4 host h2 172.16.42.3 domain ipv4 host h3 172.16.42.42 domain ipv4 host v1 172.16.1.4 domain ipv4 host v2 172.16.42.5 domain ipv4 host v3 172.16.42.64 domain ipv6 host h1 2001:db8:2::2 domain ipv6 host h2 2001:db8:cafe:42::3 domain ipv6 host h3 2001:db8:cafe:42::2a domain ipv6 host v1 2001:db8:2:1::4 domain ipv6 host v2 2001:db8:cafe:42::5 domain ipv6 host v3 2001:db8:cafe:42::40 ! interface Loopback0 no shutdown ipv4 address 10.0.0.1 255.255.255.255 ipv6 address 2001:db8:1:1::1/64 ! interface FourHundredGigE0/0/0/0 no shutdown description dut -> h1 [stub] ipv4 address 172.16.0.1 255.255.255.0 ipv6 address 2001:db8:2::1/64 ipv6 nd ra-interval 5 ! interface FourHundredGigE0/0/0/1 no shutdown description dut -> [h2,h3] [stub] ipv4 address 172.16.42.1 255.255.255.0 ipv6 address 2001:db8:cafe:42::1/64 ipv6 nd ra-interval 5 ! interface FourHundredGigE0/0/0/2 no shutdown description dut -> v1 [stub] ipv4 address 172.16.1.1 255.255.255.0 ipv6 address 2001:db8:2:1::1/64 ipv6 nd ra-interval 5 ! interface FourHundredGigE0/0/0/3 no shutdown description dut -> [v2,v3] [stub] ipv4 address 172.16.42.1 255.255.255.0 ipv6 address 2001:db8:cafe:42::1/64 ipv6 nd ra-interval 5 ! TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/linux-clab.yml for h1, h2, h3, v1, v2, v3 TASK [iosxr_config: deploying initial from /home/pipi/netlab_gh/netsim/ansible/templates/initial/iosxr.j2] *** [WARNING]: To ensure idempotency and correct diff the input configuration lines should be similar to how they appear if present in the running configuration on device including the indentation changed: [dut] TASK [Define script filename and determine whether to execute in netns] ******** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] TASK [Create a temporary file for the rendered script] ************************* changed: [h1 -> localhost] changed: [v1 -> localhost] changed: [v3 -> localhost] changed: [h2 -> localhost] changed: [v2 -> localhost] changed: [h3 -> localhost] TASK [Create container setup script from /home/pipi/netlab_gh/netsim/ansible/templates/initial/linux-clab.j2] *** changed: [v3 -> localhost] changed: [h3 -> localhost] changed: [v1 -> localhost] changed: [h2 -> localhost] changed: [v2 -> localhost] changed: [h1 -> localhost] TASK [Copy script into running container at /tmp/config-h1_initial.sh] ********* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Execute /tmp/config-h1_initial.sh to deploy initial config based on /home/pipi/netlab_gh/netsim/ansible/templates/initial/linux-clab.j2] *** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Container configuration for initial based on /home/pipi/netlab_gh/netsim/ansible/templates/initial/linux-clab.j2 executed in netns] *** changed: [h1 -> localhost] changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [v1 -> localhost] changed: [v2 -> localhost] changed: [v3 -> localhost] TASK [Remove temporary file /tmp/h1_initial-mf3iievl.sh] *********************** changed: [v3 -> localhost] changed: [v1 -> localhost] changed: [h3 -> localhost] changed: [h2 -> localhost] changed: [h1 -> localhost] changed: [v2 -> localhost] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, h1, h2, h3, v1, v2, v3 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, h1, h2, h3, v1, v2, v3 => (item=vrf) TASK [Figure out whether to deploy the module routing on current device] ******* ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Find configuration template for routing] ********************************* ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Find configuration deployment deploy_script for routing] ***************** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [h1] => msg: |- routing configuration for h1 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.0.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.0.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.0.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.0.1 dev eth1 protocol static # # Print the final routing table ip route ok: [h2] => msg: |- routing configuration for h2 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.42.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.42.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.42.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.42.1 dev eth1 protocol static # # Print the final routing table ip route ok: [h3] => msg: |- routing configuration for h3 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.42.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.42.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.42.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.42.1 dev eth1 protocol static # # Print the final routing table ip route ok: [v1] => msg: |- routing configuration for v1 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.1.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.1.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.1.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.1.1 dev eth1 protocol static # # Print the final routing table ip route ok: [v2] => msg: |- routing configuration for v2 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.42.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.42.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.42.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.42.1 dev eth1 protocol static # # Print the final routing table ip route ok: [v3] => msg: |- routing configuration for v3 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.42.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.42.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.42.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.42.1 dev eth1 protocol static # # Print the final routing table ip route ok: [dut] => msg: |- routing configuration for dut ========================================= ! ! Static routes ! router static address-family ipv4 unicast 172.16.42.42/32 Null0 address-family ipv6 unicast 2001:db8:cafe:42::2a/128 Null0 vrf tenant address-family ipv4 unicast 172.16.42.64/32 Null0 vrf tenant address-family ipv6 unicast 2001:db8:cafe:42::40/128 Null0 TASK [Deploy routing configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/linux-clab.yml for h1, h2, h3, v1, v2, v3 TASK [iosxr_config: deploying routing from /home/pipi/netlab_gh/netsim/ansible/templates/routing/iosxr.j2] *** changed: [dut] TASK [Define script filename and determine whether to execute in netns] ******** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] TASK [Create a temporary file for the rendered script] ************************* changed: [h1 -> localhost] changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [v1 -> localhost] changed: [v2 -> localhost] changed: [v3 -> localhost] TASK [Create container setup script from /home/pipi/netlab_gh/netsim/ansible/templates/routing/linux-clab.j2] *** changed: [h1 -> localhost] changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [v2 -> localhost] changed: [v1 -> localhost] changed: [v3 -> localhost] TASK [Copy script into running container at /tmp/config-h1_routing.sh] ********* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Execute /tmp/config-h1_routing.sh to deploy routing config based on /home/pipi/netlab_gh/netsim/ansible/templates/routing/linux-clab.j2] *** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Container configuration for routing based on /home/pipi/netlab_gh/netsim/ansible/templates/routing/linux-clab.j2 executed in netns] *** changed: [h2 -> localhost] changed: [h1 -> localhost] changed: [h3 -> localhost] changed: [v1 -> localhost] changed: [v2 -> localhost] changed: [v3 -> localhost] TASK [Remove temporary file /tmp/h1_routing-tb1cixln.sh] *********************** changed: [h2 -> localhost] changed: [h1 -> localhost] changed: [h3 -> localhost] changed: [v1 -> localhost] changed: [v3 -> localhost] changed: [v2 -> localhost] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [h1] ok: [h2] ok: [h3] ok: [v1] ok: [v2] ok: [v3] ok: [dut] TASK [Find configuration template for vrf] ************************************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] ok: [dut] => msg: |- vrf configuration for dut ========================================= vrf tenant rd 65000:1 ! address-family ipv4 unicast import route-target 65000:1 export route-target 65000:1 ! address-family ipv6 unicast import route-target 65000:1 export route-target 65000:1 ! interface FourHundredGigE0/0/0/2 vrf tenant ! interface FourHundredGigE0/0/0/3 vrf tenant ! TASK [Deploy vrf configuration] ************************************************ skipping: [h1] skipping: [h2] skipping: [h3] skipping: [v1] skipping: [v2] skipping: [v3] included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut TASK [iosxr_config: deploying vrf from /home/pipi/netlab_gh/netsim/ansible/templates/vrf/iosxr.j2] *** changed: [dut] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=33 changed=3 unreachable=0 failed=0 skipped=7 rescued=0 ignored=0 h1 : ok=31 changed=8 unreachable=0 failed=0 skipped=16 rescued=0 ignored=0 h2 : ok=31 changed=8 unreachable=0 failed=0 skipped=16 rescued=0 ignored=0 h3 : ok=31 changed=8 unreachable=0 failed=0 skipped=16 rescued=0 ignored=0 v1 : ok=31 changed=8 unreachable=0 failed=0 skipped=16 rescued=0 ignored=0 v2 : ok=31 changed=8 unreachable=0 failed=0 skipped=16 rescued=0 ignored=0 v3 : ok=31 changed=8 unreachable=0 failed=0 skipped=16 rescued=0 ignored=0 Use this topology to test 'discard' IPv4 and IPv6 static routes. H1 should be able to reach H2 but not H3 (due to a discard static route)