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 [CREATED] h2: initial [CREATED] h3: initial [CREATED] h4: initial [CREATED] dut: initial,ospf,bgp,mpls,vrf [CREATED] pe2: normalize,initial,ospf,bgp,mpls,vrf [CREATED] p1: initial,ospf,mpls [CREATED] p2: initial,ospf,mpls [INFO] Executing initial configuration for node h1 (namespace clab- ml_23-h1) [INFO] Executing initial configuration for node h2 (namespace clab- ml_23-h2) [INFO] Executing initial configuration for node h3 (namespace clab- ml_23-h3) [INFO] Executing initial configuration for node h4 (namespace clab- ml_23-h4) [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/hogs/group_vars/all/topology.yml:159:1 157 ce_link: 158 ipv6: 2001:db8:42::/48 159 hosts: ^ column 1 PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [p1] ok: [p2] ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [dut] ok: [pe2] TASK [Generic readiness tests] ************************************************* skipping: [p1] skipping: [p2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/ssh.yml for dut, pe2 => (item=ssh) TASK [Check if 'sshpass' is installed] ***************************************** ok: [dut -> localhost] TASK [Check for 'timeout' command] ********************************************* ok: [dut -> localhost] ok: [pe2 -> localhost] TASK [Execute local ssh command to check ssh readiness] ************************ FAILED - RETRYING: [pe2 -> localhost]: Execute local ssh command to check ssh readiness (20 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (60 retries left). ok: [pe2 -> localhost] FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (59 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (58 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (57 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (56 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (55 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (54 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (53 retries left). ok: [dut -> localhost] TASK [Confirm dut SSH server works] ******************************************** ok: [dut] => { "msg": "Node dut is ready." } ok: [pe2] => { "msg": "Node pe2 is ready." } TASK [Find device readiness script] ******************************************** ok: [p1] ok: [p2] ok: [h1] ok: [h2] ok: [dut] ok: [h3] ok: [h4] ok: [pe2] TASK [Wait for device to become ready] ***************************************** skipping: [pe2] skipping: [p1] skipping: [p2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/junos.yml for dut TASK [set_fact] **************************************************************** ok: [dut] TASK [Wait for first interface (ge-0/0/0)] ************************************* ok: [dut] 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 pe2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for p1 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for p2 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 h3 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h4 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: [pe2] TASK [Find configuration template for normalize] ******************************* ok: [pe2] TASK [fail] ******************************************************************** skipping: [pe2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [pe2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [pe2] => { "msg": "normalize configuration for pe2\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 pe2 TASK [eos_config: deploying normalize from /work/netlab_cicd/hogs/node_files/pe2/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: [pe2] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [p1] TASK [Find configuration template for normalize] ******************************* ok: [p1] TASK [fail] ******************************************************************** skipping: [p1] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [p1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [p1] TASK [Deploy normalize configuration] ****************************************** skipping: [p1] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [p2] TASK [Find configuration template for normalize] ******************************* ok: [p2] TASK [fail] ******************************************************************** skipping: [p2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [p2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [p2] TASK [Deploy normalize configuration] ****************************************** skipping: [p2] 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: [h3] TASK [Find configuration template for normalize] ******************************* ok: [h3] TASK [fail] ******************************************************************** skipping: [h3] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [h3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h3] TASK [Deploy normalize configuration] ****************************************** skipping: [h3] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [h4] TASK [Find configuration template for normalize] ******************************* ok: [h4] TASK [fail] ******************************************************************** skipping: [h4] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [h4] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h4] TASK [Deploy normalize configuration] ****************************************** skipping: [h4] 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 pe2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for p1 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for p2 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 h3 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h4 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=========================================\nsystem {\n host-name dut;\n static-host-mapping {\n pe2 inet 10.0.0.6;\n p1 inet 10.0.0.7;\n p2 inet 10.0.0.8;\n }\n}\n\n\n\n\npolicy-options {\n community tg_65000_1 members target:65000:1;\n community tg_65000_2 members target:65000:2;\n}\n\n\n\npolicy-options {\n policy-statement vrf-t1-rt-export {\n term 1 {\n then {\n community add tg_65000_1;\n accept;\n }\n }\n }\n\n\n policy-statement vrf-t1-rt-import {\n term 1 {\n from community [ tg_65000_1 ];\n then accept;\n }\n term default {\n then reject;\n }\n }\n policy-statement vrf-t2-rt-export {\n term 1 {\n then {\n community add tg_65000_2;\n accept;\n }\n }\n }\n\n\n policy-statement vrf-t2-rt-import {\n term 1 {\n from community [ tg_65000_2 ];\n then accept;\n }\n term default {\n then reject;\n }\n }\n}\n\nrouting-instances {\n\n t1 {\n instance-type vrf;\n route-distinguisher 65000:1;\n\n vrf-import vrf-t1-rt-import;\n vrf-export vrf-t1-rt-export;\n\n routing-options {\n auto-export;\n }\n\n interface ge-0/0/1.0;\n\n }\n\n\n t2 {\n instance-type vrf;\n route-distinguisher 65000:2;\n\n vrf-import vrf-t2-rt-import;\n vrf-export vrf-t2-rt-export;\n\n routing-options {\n auto-export;\n }\n\n interface ge-0/0/2.0;\n\n }\n\n}\ninterfaces {\n ge-0/0/0 {\n mtu 1514;\n }\n ge-0/0/1 {\n mtu 1514;\n }\n ge-0/0/2 {\n mtu 1514;\n }\n\n lo0.0 {\n \n family inet {\n address 10.0.0.5/32;\n }\n \n }\n ge-0/0/0.0 {\n description \"dut -> p1\";\n \n family inet {\n address 10.1.0.1/30;\n }\n \n }\n ge-0/0/1.0 {\n description \"dut -> h1 [stub]\";\n \n family inet6 {\n address 2001:db8:42::5/64;\n }\n \n }\n ge-0/0/2.0 {\n description \"dut -> h3 [stub]\";\n \n family inet6 {\n address 2001:db8:42:2::5/64;\n }\n \n }\n}\nprotocols {\n lldp {\n interface fxp0 {\n disable;\n }\n interface all;\n }\n router-advertisement {\n interface ge-0/0/1.0;\n interface ge-0/0/2.0;\n }\n}\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying initial from /work/netlab_cicd/hogs/node_files/dut/initial] *** changed: [dut] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [pe2] TASK [Find configuration template for initial] ********************************* ok: [pe2] TASK [fail] ******************************************************************** skipping: [pe2] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [pe2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [pe2] => { "msg": "initial configuration for pe2\n=========================================\nhostname pe2\n!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nipv6 unicast-routing\n!\nvrf instance t1\n rd 65000:1\n!\nipv6 unicast-routing vrf t1\n!\nvrf instance t2\n rd 65000:2\n!\nipv6 unicast-routing vrf t2\n!\n!\nip host dut 10.0.0.5 10.1.0.1\nip host p1 10.0.0.7 10.1.0.2 10.1.0.5\nip host p2 10.0.0.8 10.1.0.6 10.1.0.9\nipv6 host dut-t1 2001:db8:42::5\nipv6 host dut-t2 2001:db8:42:2::5\nipv6 host h1 2001:db8:42::1\nipv6 host h2 2001:db8:42:1::2\nipv6 host h3 2001:db8:42:2::3\nipv6 host h4 2001:db8:42:3::4\nipv6 host pe2-t1 2001:db8:42:1::6\nipv6 host pe2-t2 2001:db8:42:3::6\n!\ninterface Management0\n no lldp transmit\n no lldp receive\n!\ninterface Loopback0\n ip address 10.0.0.6/32\n!\ninterface Ethernet1\n no switchport\n description pe2 -> p2\n ip address 10.1.0.10/30\n mac-address caf0.0006.0001\n!\n no shutdown\n!\ninterface Ethernet2\n no switchport\n vrf t1\n description pe2 -> h2 [stub]\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:42:1::6/64\n mac-address caf0.0006.0002\n!\n no shutdown\n!\ninterface Ethernet3\n no switchport\n vrf t2\n description pe2 -> h4 [stub]\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:42:3::6/64\n mac-address caf0.0006.0003\n!\n no shutdown\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for pe2 TASK [eos_config: deploying initial from /work/netlab_cicd/hogs/node_files/pe2/initial] *** changed: [pe2] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [p1] TASK [Find configuration template for initial] ********************************* ok: [p1] TASK [fail] ******************************************************************** skipping: [p1] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [p1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [p1] => { "msg": "initial configuration for p1\n=========================================\n#!/bin/bash\n#\nset -e\nset -x\n#\n# Create bash profile script\n#\ncat <