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 [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:158:1 156 ipv4: 10.2.0.0/24 157 prefix: 32 158 hosts: ^ column 1 PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [x1] ok: [x2] ok: [dut] ok: [dut2] TASK [Generic readiness tests] ************************************************* skipping: [dut] skipping: [dut2] skipping: [x1] skipping: [x2] TASK [Find device readiness script] ******************************************** ok: [x1] ok: [x2] ok: [dut] ok: [dut2] TASK [Wait for device to become ready] ***************************************** skipping: [dut] skipping: [dut2] skipping: [x1] skipping: [x2] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for x1 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for x2 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] *************** skipping: [dut] TASK [Deploy normalize configuration] ****************************************** skipping: [dut] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [dut2] TASK [Find configuration template for normalize] ******************************* ok: [dut2] TASK [fail] ******************************************************************** skipping: [dut2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [dut2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut2] TASK [Deploy normalize configuration] ****************************************** skipping: [dut2] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [x1] TASK [Find configuration template for normalize] ******************************* ok: [x1] TASK [fail] ******************************************************************** skipping: [x1] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [x1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [x1] TASK [Deploy normalize configuration] ****************************************** skipping: [x1] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [x2] TASK [Find configuration template for normalize] ******************************* ok: [x2] TASK [fail] ******************************************************************** skipping: [x2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [x2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [x2] TASK [Deploy normalize configuration] ****************************************** skipping: [x2] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for x1 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for x2 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!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host dut2 2001:db8:1::2 2001:db8:cafe:e01::2\nip host x1 2001:db8:1::3 2001:db8:3::3\nip host x2 2001:db8:1::4 2001:db8:3:1::4\n!\nip routing\n!\nipv6 unicast-routing\n!\n!\ninterface Loopback0\n ipv6 address 2001:DB8:1::1/128\n!\ninterface GigabitEthernet1\n no lldp transmit\n no lldp receive\n!\ninterface GigabitEthernet2\n description dut -> x1 [external]\n mtu 1500\n ipv6 nd ra interval 5\n ipv6 address 2001:DB8:3::1/64\n no shutdown\n!\ninterface GigabitEthernet3\n description dut -> x2 [external]\n mtu 1500\n ipv6 nd ra interval 5\n ipv6 address 2001:DB8:3:1::1/64\n no shutdown\n!\ninterface GigabitEthernet4\n description dut -> dut2 [external]\n mtu 1500\n ipv6 nd ra interval 5\n ipv6 address 2001:DB8:CAFE:E01::1/64\n no shutdown\n!\ninterface GigabitEthernet5\n description dut -> stub [stub]\n mtu 1500\n ipv6 nd ra interval 5\n ipv6 address 2001:DB8:CAFE:E42::1/64\n no shutdown\n!\n!\nline vty 0 4\n exec-timeout 0 0 \n!\nno banner exec\nno banner login\nno banner incoming\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying initial from /work/netlab_cicd/node_files/dut/initial] *** [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 [Figure out whether to deploy the module initial on current device] ******* ok: [dut2] TASK [Find configuration template for initial] ********************************* ok: [dut2] TASK [fail] ******************************************************************** skipping: [dut2] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut2] => { "msg": "initial configuration for dut2\n=========================================\nhostname dut2\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host dut 2001:db8:1::1 2001:db8:3::1 2001:db8:3:1::1 2001:db8:cafe:e01::1 2001:db8:cafe:e42::1\nip host x1 2001:db8:1::3 2001:db8:3::3\nip host x2 2001:db8:1::4 2001:db8:3:1::4\n!\nip routing\n!\nipv6 unicast-routing\n!\n!\ninterface Loopback0\n ipv6 address 2001:DB8:1::2/128\n!\ninterface GigabitEthernet1\n no lldp transmit\n no lldp receive\n!\ninterface GigabitEthernet2\n description dut2 -> dut [external]\n mtu 1500\n ipv6 nd ra interval 5\n ipv6 address 2001:DB8:CAFE:E01::2/64\n no shutdown\n!\n!\nline vty 0 4\n exec-timeout 0 0 \n!\nno banner exec\nno banner login\nno banner incoming\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut2 TASK [ios_config: deploying initial from /work/netlab_cicd/node_files/dut2/initial] *** changed: [dut2] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [x1] TASK [Find configuration template for initial] ********************************* ok: [x1] TASK [fail] ******************************************************************** skipping: [x1] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [x1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [x1] => { "msg": "initial configuration for x1\n=========================================\n#!/bin/bash\n#\nset -e\nset -x\n#\n# Create bash profile script\n#\ncat <