Warning in ansible: You're using Ansible version 12.x or higher; netlab might not work correctly ... Ansible core version 2.19 introduced breaking changes in templates and playbooks ... We tested netlab core with Ansible version 12.x but not every device template ... You might want to downgrade Ansible to version 11.10 or lower. ... Use 'netlab install ansible' on Ubuntu to do that ... Finally, please open a GitHub issue if you experience errors/crashes ... Set defaults.ansible.warnings.ver12 to False to hide this warning [INFO] Checking for updates in configuration templates [INFO] Creating configuration snippets [CREATED] h1: initial,routing [CREATED] h2: initial,routing [CREATED] srv: initial,routing [CREATED] dut: normalize,initial,vrf [INFO] Executing initial configuration for node h1 (namespace clab- ml_17-h1) [INFO] Executing routing configuration for node h1 (namespace clab- ml_17-h1) [INFO] Executing initial configuration for node h2 (namespace clab- ml_17-h2) [INFO] Executing routing configuration for node h2 (namespace clab- ml_17-h2) [INFO] Executing initial configuration for node srv (namespace clab- ml_17-srv) [INFO] Executing routing configuration for node srv (namespace clab- ml_17-srv) [INFO] Starting Ansible playbook to deploy the rest of the configurations [WARNING]: Could not match supplied host pattern, ignoring: unprovisioned [WARNING]: Found variable using reserved name 'hosts'. Origin: /work/netlab_cicd/group_vars/all/topology.yml:168:1 166 ipv6: 2001:db8:cafe:2000::/56 167 prefix6: 128 168 hosts: ^ column 1 PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [srv] ok: [dut] TASK [Generic readiness tests] ************************************************* skipping: [h1] skipping: [h2] skipping: [srv] 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 (20 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: [srv] ok: [dut] TASK [Wait for device to become ready] ***************************************** skipping: [h1] skipping: [h2] skipping: [srv] skipping: [dut] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for srv included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [h1] TASK [Find configuration template for normalize] ******************************* ok: [h1] TASK [fail] ******************************************************************** skipping: [h1] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [h1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] TASK [Deploy normalize configuration] ****************************************** skipping: [h1] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [h2] TASK [Find configuration template for normalize] ******************************* ok: [h2] TASK [fail] ******************************************************************** skipping: [h2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [h2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h2] TASK [Deploy normalize configuration] ****************************************** skipping: [h2] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [srv] TASK [Find configuration template for normalize] ******************************* ok: [srv] TASK [fail] ******************************************************************** skipping: [srv] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [srv] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [srv] TASK [Deploy normalize configuration] ****************************************** skipping: [srv] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [dut] TASK [Find configuration template for normalize] ******************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "normalize configuration for dut\n=========================================\n!\ninterface Ethernet1\n shutdown\n!\ninterface Ethernet2\n shutdown\n!\ninterface Ethernet3\n shutdown\n" } TASK [Deploy normalize configuration] ****************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for dut TASK [eos_config: deploying normalize from /work/netlab_cicd/node_files/dut/normalize] *** [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 [WARNING]: Task result `warnings` was instead of . changed: [dut] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for srv included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module initial on current device] ******* ok: [h1] TASK [Find configuration template for initial] ********************************* skipping: [h1] TASK [fail] ******************************************************************** skipping: [h1] TASK [Find configuration deployment deploy_script for initial] ***************** skipping: [h1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] TASK [Deploy initial configuration] ******************************************** skipping: [h1] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [h2] TASK [Find configuration template for initial] ********************************* skipping: [h2] TASK [fail] ******************************************************************** skipping: [h2] TASK [Find configuration deployment deploy_script for initial] ***************** skipping: [h2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h2] TASK [Deploy initial configuration] ******************************************** skipping: [h2] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [srv] TASK [Find configuration template for initial] ********************************* skipping: [srv] TASK [fail] ******************************************************************** skipping: [srv] TASK [Find configuration deployment deploy_script for initial] ***************** skipping: [srv] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [srv] TASK [Deploy initial configuration] ******************************************** skipping: [srv] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut] TASK [Find configuration template for initial] ********************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "initial configuration for dut\n=========================================\nhostname dut\n!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nipv6 unicast-routing\n!\nvrf instance red\n rd 65000:1\n!\nip routing vrf red\n!\nipv6 unicast-routing vrf red\n!\nvrf instance blue\n rd 65000:2\n!\nip routing vrf blue\n!\nipv6 unicast-routing vrf blue\n!\nvrf instance common\n rd 65000:3\n!\nip routing vrf common\n!\nipv6 unicast-routing vrf common\n!\n!\nip host dut-red 172.16.0.4\nip host dut-blue 172.16.1.4\nip host dut-common 172.16.2.4\nip host h1 172.16.0.1\nip host h2 172.16.1.2\nip host srv 172.16.2.3\nipv6 host dut-red 2001:db8:2::4\nipv6 host dut-blue 2001:db8:2:1::4\nipv6 host dut-common 2001:db8:2:2::4\nipv6 host h1 2001:db8:2::1\nipv6 host h2 2001:db8:2:1::2\nipv6 host srv 2001:db8:2:2::3\n!\ninterface Management0\n no lldp transmit\n no lldp receive\n!\ninterface Loopback0\n ip address 10.0.0.4/32\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:1:4::1/64\n!\ninterface Ethernet1\n no switchport\n vrf red\n description dut -> h1 [stub]\n ip address 172.16.0.4/24\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:2::4/64\n mac-address caf0.0004.0001\n!\n no shutdown\n!\ninterface Ethernet2\n no switchport\n vrf blue\n description dut -> h2 [stub]\n ip address 172.16.1.4/24\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:2:1::4/64\n mac-address caf0.0004.0002\n!\n no shutdown\n!\ninterface Ethernet3\n no switchport\n vrf common\n description dut -> srv [stub]\n ip address 172.16.2.4/24\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:2:2::4/64\n mac-address caf0.0004.0003\n!\n no shutdown\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for dut TASK [eos_config: deploying initial from /work/netlab_cicd/node_files/dut/initial] *** changed: [dut] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [srv] ok: [dut] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1 => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h2 => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h2 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for srv => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for srv => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=routing) TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [h1] TASK [Find configuration template for vrf] ************************************* skipping: [h1] TASK [fail] ******************************************************************** skipping: [h1] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [h1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] TASK [Deploy vrf configuration] ************************************************ skipping: [h1] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [h1] TASK [Find configuration template for routing] ********************************* skipping: [h1] TASK [fail] ******************************************************************** skipping: [h1] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [h1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] TASK [Deploy routing configuration] ******************************************** skipping: [h1] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [h2] TASK [Find configuration template for vrf] ************************************* skipping: [h2] TASK [fail] ******************************************************************** skipping: [h2] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [h2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h2] TASK [Deploy vrf configuration] ************************************************ skipping: [h2] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [h2] TASK [Find configuration template for routing] ********************************* skipping: [h2] TASK [fail] ******************************************************************** skipping: [h2] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [h2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h2] TASK [Deploy routing configuration] ******************************************** skipping: [h2] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [srv] TASK [Find configuration template for vrf] ************************************* skipping: [srv] TASK [fail] ******************************************************************** skipping: [srv] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [srv] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [srv] TASK [Deploy vrf configuration] ************************************************ skipping: [srv] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [srv] TASK [Find configuration template for routing] ********************************* skipping: [srv] TASK [fail] ******************************************************************** skipping: [srv] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [srv] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [srv] TASK [Deploy routing configuration] ******************************************** skipping: [srv] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [dut] TASK [Find configuration template for vrf] ************************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for vrf] ********************* ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "vrf configuration for dut\n=========================================\n!\nmpls ip\n!\nrouter bgp 65000\n!\n vrf red\n router-id 10.0.0.4\n rd 65000:1\n route-target import vpn-ipv4 65000:1\n route-target import vpn-ipv4 65000:3\n route-target export vpn-ipv4 65000:1\n route-target import vpn-ipv6 65000:1\n route-target import vpn-ipv6 65000:3\n route-target export vpn-ipv6 65000:1\n!\n address-family ipv4\n redistribute connected\n\n!\n address-family ipv6\n redistribute connected\n\n!\n vrf blue\n router-id 10.0.0.4\n rd 65000:2\n route-target import vpn-ipv4 65000:2\n route-target import vpn-ipv4 65000:3\n route-target export vpn-ipv4 65000:2\n route-target import vpn-ipv6 65000:2\n route-target import vpn-ipv6 65000:3\n route-target export vpn-ipv6 65000:2\n!\n address-family ipv4\n redistribute connected\n\n!\n address-family ipv6\n redistribute connected\n\n!\n vrf common\n router-id 10.0.0.4\n rd 65000:3\n route-target import vpn-ipv4 65000:1\n route-target import vpn-ipv4 65000:2\n route-target import vpn-ipv4 65000:3\n route-target export vpn-ipv4 65000:3\n route-target import vpn-ipv6 65000:1\n route-target import vpn-ipv6 65000:2\n route-target import vpn-ipv6 65000:3\n route-target export vpn-ipv6 65000:3\n!\n address-family ipv4\n redistribute connected\n\n!\n address-family ipv6\n redistribute connected\n\n" } TASK [Deploy vrf configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for dut TASK [eos_config: deploying vrf from /work/netlab_cicd/node_files/dut/vrf] ***** changed: [dut] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [dut] TASK [Find configuration template for routing] ********************************* skipping: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] TASK [Deploy routing configuration] ******************************************** skipping: [dut] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=31 changed=3 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0 h1 : ok=13 changed=0 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0 h2 : ok=13 changed=0 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0 srv : ok=13 changed=0 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0 Warning: The following warnings were generated during the 'netlab initial' processing Warning: ansible: You're using Ansible version 12.x or higher; netlab might not work correctly Results of configuration script deployments ================================================================================ h1 OK: 2 h2 OK: 2 srv OK: 2 The device under test has two user VRFs and a common services VRF. The lab tests inter-VRF route leaking between common VRF and other VRFs * h1 and h2 should be able to ping srv but not each other