[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: [dut] ok: [x1] ok: [x2] TASK [Find device readiness script] ******************************************** ok: [dut] ok: [x1] ok: [x2] TASK [Wait for device to become ready] ***************************************** skipping: [dut] included: /home/pipi/net101/tools/netsim/ansible/tasks/readiness-check/eos-clab.yml for x1, x2 TASK [Wait for cEOS SSH daemon to start] *************************************** ok: [x2] ok: [x1] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for x1, x2, dut TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [dut] ok: [x1] ok: [x2] TASK [Find configuration template for normalize] ******************************* ok: [dut] ok: [x1] ok: [x2] TASK [fail] ******************************************************************** skipping: [x1] skipping: [x2] skipping: [dut] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [dut] ok: [x1] ok: [x2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] ok: [x1] => msg: |- normalize configuration for x1 ========================================= ! interface Ethernet1 shutdown mac-address 52dc.cafe.0201 ! interface Ethernet2 shutdown mac-address 52dc.cafe.0202 ok: [x2] => msg: |- normalize configuration for x2 ========================================= ! interface Ethernet1 shutdown mac-address 52dc.cafe.0301 ! interface Ethernet2 shutdown mac-address 52dc.cafe.0302 TASK [Deploy normalize configuration] ****************************************** skipping: [dut] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for x1, x2 TASK [eos_config: deploying normalize from /home/pipi/net101/tools/netsim/ansible/templates/normalize/eos.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: [x2] changed: [x1] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for x1, x2, dut TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut] ok: [x1] ok: [x2] TASK [Find configuration template for initial] ********************************* ok: [dut] ok: [x1] ok: [x2] TASK [fail] ******************************************************************** skipping: [x1] skipping: [x2] skipping: [dut] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut] ok: [x1] ok: [x2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => msg: |- initial configuration for dut ========================================= #!/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=1 sysctl -w net.ipv6.conf.all.forwarding=1 # # Loopback addressing # set +e ip addr del 10.0.0.1/32 dev lo 2>/dev/null set -e ip addr add 10.0.0.1/32 dev lo # # Interface addressing, create any bond devices # if [ ! -e /sys/class/net/bond1 ]; then ip link add dev bond1 type bond mode 802.3ad lacp_rate fast lacp_active on fi ip link set dev bond1 up set +e ip addr del 172.16.0.1/24 dev bond1 2>/dev/null set -e ip addr add 172.16.0.1/24 dev bond1 ip link set dev bond1 mtu 1500 if [ ! -e /sys/class/net/bond2 ]; then ip link add dev bond2 type bond mode 802.3ad lacp_rate fast lacp_active on fi ip link set dev bond2 up set +e ip addr del 172.16.1.1/24 dev bond2 2>/dev/null set -e ip addr add 172.16.1.1/24 dev bond2 ip link set dev bond2 mtu 1400 ip link set dev eth1 up ip link set dev eth1 mtu 1500 ip link set dev eth2 up ip link set dev eth2 mtu 1500 ip link set dev eth3 up ip link set dev eth3 mtu 1400 ip link set dev eth4 up ip link set dev eth4 mtu 1400 # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # # # # Print the final routing table ip route ok: [x1] => msg: |- initial configuration for x1 ========================================= hostname x1 ! logging monitor debugging aaa authorization exec default local ! lldp run ip routing ! ! ip host dut 10.0.0.1 172.16.0.1 172.16.1.1 ip host x2 172.16.1.3 ! interface Management0 no lldp transmit no lldp receive ! interface port-channel1 no switchport mtu 1500 description x1 -> dut [stub] ip address 172.16.0.2/24 ! interface Ethernet1 no switchport mtu 1500 description x1 -> dut [stub] ! mac-address 52dc.cafe.0201 no shutdown ! interface Ethernet2 no switchport mtu 1500 description x1 -> dut [stub] ! mac-address 52dc.cafe.0202 no shutdown ! ok: [x2] => msg: |- initial configuration for x2 ========================================= hostname x2 ! logging monitor debugging aaa authorization exec default local ! lldp run ip routing ! ! ip host dut 10.0.0.1 172.16.0.1 172.16.1.1 ip host x1 172.16.0.2 ! interface Management0 no lldp transmit no lldp receive ! interface port-channel1 no switchport mtu 1400 description x2 -> dut [stub] ip address 172.16.1.3/24 ! interface Ethernet1 no switchport mtu 1400 description x2 -> dut [stub] ! mac-address 52dc.cafe.0301 no shutdown ! interface Ethernet2 no switchport mtu 1400 description x2 -> dut [stub] ! mac-address 52dc.cafe.0302 no shutdown ! TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for x1, x2 included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/linux-clab.yml for dut TASK [eos_config: deploying initial from /home/pipi/net101/tools/netsim/ansible/templates/initial/eos.j2] *** changed: [x1] changed: [x2] TASK [Define script filename and determine whether to execute in netns] ******** ok: [dut] TASK [Create a temporary file for the rendered script] ************************* changed: [dut -> localhost] TASK [Create container setup script from /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2] *** changed: [dut -> localhost] TASK [Copy script into running container at /tmp/config-dut_initial.sh] ******** skipping: [dut] TASK [Execute /tmp/config-dut_initial.sh to deploy initial config based on /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2] *** skipping: [dut] TASK [Container configuration for initial based on /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2 executed in netns] *** changed: [dut -> localhost] TASK [Remove temporary file /tmp/dut_initial-ybs2reed.sh] ********************** changed: [dut -> localhost] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] ok: [x1] ok: [x2] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for dut, x1, x2 => (item=lag) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for dut, x1, x2 => (item=routing) TASK [Figure out whether to deploy the module lag on current device] *********** ok: [dut] ok: [x1] ok: [x2] TASK [Find configuration template for lag] ************************************* ok: [dut] ok: [x2] ok: [x1] TASK [fail] ******************************************************************** skipping: [dut] skipping: [x1] skipping: [x2] TASK [Find configuration deployment deploy_script for lag] ********************* ok: [dut] ok: [x1] ok: [x2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => msg: |- lag configuration for dut ========================================= #!/bin/bash # set -e # Exit immediately when any command fails # # Bond devices are created by 'initial' module - add members # ip link set dev eth1 down ip link set dev eth1 master bond1 ip link set dev eth1 up ip link set dev eth2 down ip link set dev eth2 master bond1 ip link set dev eth2 up ip link set dev eth3 down ip link set dev eth3 master bond2 ip link set dev eth3 up ip link set dev eth4 down ip link set dev eth4 master bond2 ip link set dev eth4 up ip link set dev bond1 up ip link set dev bond2 up exit 0 # # Note: The above script is executed within the netns context on the host # ok: [x1] => msg: |- lag configuration for x1 ========================================= interface port-channel1 description x1 -> dut ! ! interface Ethernet1 description x1 -> dut in channel-group 1 channel-group 1 mode active lacp timer fast ! interface Ethernet2 description x1 -> dut in channel-group 1 channel-group 1 mode active lacp timer fast ok: [x2] => msg: |- lag configuration for x2 ========================================= interface port-channel1 description x2 -> dut ! ! interface Ethernet1 description x2 -> dut in channel-group 1 channel-group 1 mode active lacp timer fast ! interface Ethernet2 description x2 -> dut in channel-group 1 channel-group 1 mode active lacp timer fast TASK [Deploy lag configuration] ************************************************ included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/linux-clab.yml for dut included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for x1, x2 TASK [Define script filename and determine whether to execute in netns] ******** ok: [dut] TASK [Create a temporary file for the rendered script] ************************* changed: [dut -> localhost] TASK [Create container setup script from /home/pipi/net101/tools/netsim/ansible/templates/lag/linux-clab.j2] *** changed: [dut -> localhost] TASK [Copy script into running container at /tmp/config-dut_lag.sh] ************ skipping: [dut] TASK [Execute /tmp/config-dut_lag.sh to deploy lag config based on /home/pipi/net101/tools/netsim/ansible/templates/lag/linux-clab.j2] *** skipping: [dut] TASK [Container configuration for lag based on /home/pipi/net101/tools/netsim/ansible/templates/lag/linux-clab.j2 executed in netns] *** changed: [dut -> localhost] TASK [Remove temporary file /tmp/dut_lag-ux373l2o.sh] ************************** changed: [dut -> localhost] TASK [eos_config: deploying lag from /home/pipi/net101/tools/netsim/ansible/templates/lag/eos.j2] *** changed: [x1] changed: [x2] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [dut] ok: [x1] ok: [x2] TASK [Find configuration template for routing] ********************************* skipping: [dut] ok: [x1] ok: [x2] TASK [fail] ******************************************************************** skipping: [dut] skipping: [x1] skipping: [x2] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [dut] ok: [x1] ok: [x2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] ok: [x1] => msg: |- routing configuration for x1 ========================================= ! ! ! AS-path access lists ! ! ! Static routes ! ip route 0.0.0.0/0 port-channel1 172.16.0.1 ok: [x2] => msg: |- routing configuration for x2 ========================================= ! ! ! AS-path access lists ! ! ! Static routes ! ip route 0.0.0.0/0 port-channel1 172.16.1.1 TASK [Deploy routing configuration] ******************************************** skipping: [dut] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for x1, x2 TASK [eos_config: deploying routing from /home/pipi/net101/tools/netsim/ansible/templates/routing/eos.j2] *** changed: [x2] changed: [x1] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=31 changed=8 unreachable=0 failed=0 skipped=15 rescued=0 ignored=0 x1 : ok=33 changed=4 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 x2 : ok=33 changed=4 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0 The device under is a router with a L3 LAG link connected to a FRR device. The FRR device should be able to ping the loopback interface of DUT.