[WARNING]: Could not match supplied host pattern, ignoring: unprovisioned PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [s1] ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [Find device readiness script] ******************************************** ok: [s1] ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [Wait for device to become ready] ***************************************** skipping: [s1] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, h1, h2, h3, h4 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [s1] ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [Find configuration template for initial] ********************************* ok: [s1] ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [fail] ******************************************************************** skipping: [s1] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] 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) # # 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.1/24 dev eth1 2>/dev/null set -e ip addr add 172.16.0.1/24 dev eth1 ip link set dev eth1 mtu 1500 # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # # # # Print the final routing table ip route 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) # # 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 ip link set dev eth1 mtu 1500 # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # # # # Print the final routing table ip route ok: [h4] => msg: |- initial configuration for h4 ========================================= #!/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) # # 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.2.4/24 dev eth1 2>/dev/null set -e ip addr add 172.16.2.4/24 dev eth1 ip link set dev eth1 mtu 1500 # # 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.2.5 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.2.5 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.2.5 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.2.5 dev eth1 protocol static # # Print the final routing table ip route ok: [s1] => msg: |- initial configuration for s1 ========================================= - set: system: hostname: s1 interface: eth0: ip: vrf: mgmt address: dhcp: {} type: eth swp1: type: swp link: mtu: 1500 state: up : {} description: "[Access VLAN red] s1 -> h1" swp2: type: swp link: mtu: 1500 state: up : {} description: "[Access VLAN red] s1 -> h2" swp3: type: swp link: mtu: 1500 state: up : {} description: "[Access VLAN blue] s1 -> h3" swp4: type: swp link: mtu: 1500 state: up : {} description: "[Access VLAN green] s1 -> h4" vlan700: type: svi link: state: up : {} description: "VLAN red (700) -> [h1,h2] [stub]" vlan701: type: svi link: state: up : {} description: "VLAN blue (701) -> [h3] [stub]" ip: address: 172.16.1.5/24: {} ipv6: enable: off vlan702: type: svi link: state: up : {} description: "VLAN green (702) -> [h4] [stub]" ip: address: 172.16.2.5/24: {} ipv6: enable: off - set: interface: lo: type: loopback ip: address: 10.0.0.5/32: {} ipv6: enable: off 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) # # 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.3/24 dev eth1 2>/dev/null set -e ip addr add 172.16.1.3/24 dev eth1 ip link set dev eth1 mtu 1500 # # 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.5 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.1.5 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.1.5 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.1.5 dev eth1 protocol static # # Print the final routing table ip route TASK [Find configuration deployment deploy_script for initial] ***************** ok: [s1] ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/cumulus_nvue.yml for s1 included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/linux-clab.yml for h1, h2, h3, h4 TASK [set_fact] **************************************************************** ok: [s1] TASK [copy the cumulus nvue YAML initial config file to switch (generated from /home/pipi/net101/tools/netsim/ansible/templates/initial/cumulus_nvue.j2)] *** changed: [s1] TASK [Wait for nvued to start] ************************************************* ok: [s1] TASK [set_fact] **************************************************************** ok: [s1] TASK [execute on cumulus: 'nv config patch' for initial config] **************** changed: [s1] TASK [execute on cumulus: 'nv config apply -y' for initial config] ************* changed: [s1] TASK [Define script filename and determine whether to execute in netns] ******** ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [Create a temporary file for the rendered script] ************************* changed: [h2 -> localhost] changed: [h1 -> localhost] changed: [h4 -> localhost] changed: [h3 -> localhost] TASK [Create container setup script from /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2] *** changed: [h2 -> localhost] changed: [h4 -> localhost] changed: [h1 -> localhost] changed: [h3 -> localhost] TASK [Copy script into running container at /tmp/config-h1_initial.sh] ********* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Execute /tmp/config-h1_initial.sh to deploy initial config based on /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2] *** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Container configuration for initial based on /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2 executed in netns] *** changed: [h1 -> localhost] changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [h4 -> localhost] TASK [Remove temporary file /tmp/h1_initial-3p0ck75r.sh] *********************** changed: [h1 -> localhost] changed: [h3 -> localhost] changed: [h4 -> localhost] changed: [h2 -> localhost] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [s1] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1 => (item=vlan) TASK [Figure out whether to deploy the module vlan on current device] ********** ok: [s1] TASK [Find configuration template for vlan] ************************************ ok: [s1] TASK [fail] ******************************************************************** skipping: [s1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [s1] => msg: |- vlan configuration for s1 ========================================= - set: bridge: domain: br_default: mac-address: "08:4f:c2:a9:00:05" # The default 'auto' setting picks the same MAC for multiple instances! untagged: 1 vlan: '701': {} '702': {} '700': {} interface: swp1: bridge: domain: br_default: access: 700 swp2: bridge: domain: br_default: access: 700 swp3: bridge: domain: br_default: access: 701 swp4: bridge: domain: br_default: access: 702 TASK [Find configuration deployment deploy_script for vlan] ******************** ok: [s1] TASK [Deploy vlan configuration] *********************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/cumulus_nvue.yml for s1 TASK [set_fact] **************************************************************** ok: [s1] TASK [copy the cumulus nvue YAML vlan config file to switch (generated from /home/pipi/net101/tools/netsim/ansible/templates/vlan/cumulus_nvue.j2)] *** changed: [s1] TASK [Wait for nvued to start] ************************************************* skipping: [s1] TASK [set_fact] **************************************************************** ok: [s1] TASK [execute on cumulus: 'nv config patch' for vlan config] ******************* changed: [s1] TASK [execute on cumulus: 'nv config apply -y' for vlan config] **************** changed: [s1] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* h1 : ok=13 changed=4 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 h2 : ok=13 changed=4 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 h3 : ok=13 changed=4 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 h4 : ok=13 changed=4 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 s1 : ok=26 changed=6 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 The device under test is a mixed layer-2/layer-3 switch. Red VLAN is a layer-2-only VLAN, the device acts as a L2/L3 switch on all other VLANs h1 and h2 should be able to ping each other, but not h3 or h4 h3 and h4 should be able to ping each other, but not h1 or h2