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] h3: initial,routing [CREATED] h4: initial,routing [CREATED] rtr: initial,vrf [INFO] Executing initial configuration for node h1 (namespace clab- ml_23-h1) [INFO] Executing routing configuration for node h1 (namespace clab- ml_23-h1) [INFO] Executing initial configuration for node h2 (namespace clab- ml_23-h2) [INFO] Executing routing configuration for node h2 (namespace clab- ml_23-h2) [INFO] Executing initial configuration for node h3 (namespace clab- ml_23-h3) [INFO] Executing routing configuration for node h3 (namespace clab- ml_23-h3) [INFO] Executing initial configuration for node h4 (namespace clab- ml_23-h4) [INFO] Executing routing 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:157:1 155 ipv4: 10.2.0.0/24 156 prefix: 32 157 hosts: ^ column 1 PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [rtr] TASK [Generic readiness tests] ************************************************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/ssh.yml for rtr => (item=ssh) TASK [Check if 'sshpass' is installed] ***************************************** ok: [rtr -> localhost] TASK [Check for 'timeout' command] ********************************************* ok: [rtr -> localhost] TASK [Execute local ssh command to check ssh readiness] ************************ FAILED - RETRYING: [rtr -> localhost]: Execute local ssh command to check ssh readiness (60 retries left). FAILED - RETRYING: [rtr -> localhost]: Execute local ssh command to check ssh readiness (59 retries left). FAILED - RETRYING: [rtr -> localhost]: Execute local ssh command to check ssh readiness (58 retries left). FAILED - RETRYING: [rtr -> localhost]: Execute local ssh command to check ssh readiness (57 retries left). FAILED - RETRYING: [rtr -> localhost]: Execute local ssh command to check ssh readiness (56 retries left). FAILED - RETRYING: [rtr -> localhost]: Execute local ssh command to check ssh readiness (55 retries left). FAILED - RETRYING: [rtr -> localhost]: Execute local ssh command to check ssh readiness (54 retries left). FAILED - RETRYING: [rtr -> localhost]: Execute local ssh command to check ssh readiness (53 retries left). ok: [rtr -> localhost] TASK [Confirm rtr SSH server works] ******************************************** ok: [rtr] => { "msg": "Node rtr is ready." } TASK [Find device readiness script] ******************************************** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [rtr] TASK [Wait for device to become ready] ***************************************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/junos.yml for rtr TASK [set_fact] **************************************************************** ok: [rtr] TASK [Wait for first interface (ge-0/0/0)] ************************************* ok: [rtr] 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 h3 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h4 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for rtr 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 [Figure out whether to deploy the module normalize on current device] ***** ok: [rtr] TASK [Find configuration template for normalize] ******************************* ok: [rtr] TASK [fail] ******************************************************************** skipping: [rtr] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [rtr] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [rtr] TASK [Deploy normalize configuration] ****************************************** skipping: [rtr] 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 h3 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h4 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for rtr 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: [h3] TASK [Find configuration template for initial] ********************************* skipping: [h3] TASK [fail] ******************************************************************** skipping: [h3] TASK [Find configuration deployment deploy_script for initial] ***************** skipping: [h3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h3] TASK [Deploy initial configuration] ******************************************** skipping: [h3] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [h4] TASK [Find configuration template for initial] ********************************* skipping: [h4] TASK [fail] ******************************************************************** skipping: [h4] TASK [Find configuration deployment deploy_script for initial] ***************** skipping: [h4] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h4] TASK [Deploy initial configuration] ******************************************** skipping: [h4] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [rtr] TASK [Find configuration template for initial] ********************************* ok: [rtr] TASK [fail] ******************************************************************** skipping: [rtr] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [rtr] TASK [Print deployed configuration when running in verbose mode] *************** ok: [rtr] => { "msg": "initial configuration for rtr\n=========================================\nsystem {\n host-name rtr;\n static-host-mapping {\n h1 inet 172.16.0.1;\n h2 inet 172.16.2.2;\n h3 inet 172.16.1.3;\n h4 inet 172.16.3.4;\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-red-rt-export {\n term 1 {\n then {\n community add tg_65000_1;\n accept;\n }\n }\n }\n\n\n policy-statement vrf-red-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-blue-rt-export {\n term 1 {\n then {\n community add tg_65000_2;\n accept;\n }\n }\n }\n\n\n policy-statement vrf-blue-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 red {\n instance-type vrf;\n route-distinguisher 65000:1;\n\n vrf-import vrf-red-rt-import;\n vrf-export vrf-red-rt-export;\n\n routing-options {\n auto-export;\n }\n\n interface ge-0/0/0.0;\n interface ge-0/0/1.0;\n\n }\n\n\n blue {\n instance-type vrf;\n route-distinguisher 65000:2;\n\n vrf-import vrf-blue-rt-import;\n vrf-export vrf-blue-rt-export;\n\n routing-options {\n auto-export;\n }\n\n interface ge-0/0/2.0;\n interface ge-0/0/3.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 ge-0/0/3 {\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 \"rtr -> h1 [stub]\";\n \n family inet {\n address 172.16.0.5/24;\n }\n \n }\n ge-0/0/1.0 {\n description \"rtr -> h3 [stub]\";\n \n family inet {\n address 172.16.1.5/24;\n }\n \n }\n ge-0/0/2.0 {\n description \"rtr -> h2 [stub]\";\n \n family inet {\n address 172.16.2.5/24;\n }\n \n }\n ge-0/0/3.0 {\n description \"rtr -> h4 [stub]\";\n \n family inet {\n address 172.16.3.5/24;\n }\n \n }\n}\nprotocols {\n lldp {\n interface fxp0 {\n disable;\n }\n interface all;\n }\n}\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for rtr TASK [junos_config: deploying initial from /work/netlab_cicd/hogs/node_files/rtr/initial] *** changed: [rtr] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [rtr] 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 h3 => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h3 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h4 => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h4 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for rtr => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for rtr => (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: [h3] TASK [Find configuration template for vrf] ************************************* skipping: [h3] TASK [fail] ******************************************************************** skipping: [h3] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [h3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h3] TASK [Deploy vrf configuration] ************************************************ skipping: [h3] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [h3] TASK [Find configuration template for routing] ********************************* skipping: [h3] TASK [fail] ******************************************************************** skipping: [h3] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [h3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h3] TASK [Deploy routing configuration] ******************************************** skipping: [h3] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [h4] TASK [Find configuration template for vrf] ************************************* skipping: [h4] TASK [fail] ******************************************************************** skipping: [h4] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [h4] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h4] TASK [Deploy vrf configuration] ************************************************ skipping: [h4] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [h4] TASK [Find configuration template for routing] ********************************* skipping: [h4] TASK [fail] ******************************************************************** skipping: [h4] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [h4] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h4] TASK [Deploy routing configuration] ******************************************** skipping: [h4] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [rtr] TASK [Find configuration template for vrf] ************************************* ok: [rtr] TASK [fail] ******************************************************************** skipping: [rtr] TASK [Find configuration deployment deploy_script for vrf] ********************* ok: [rtr] TASK [Print deployed configuration when running in verbose mode] *************** ok: [rtr] => { "msg": "vrf configuration for rtr\n=========================================\n\n" } TASK [Deploy vrf configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for rtr TASK [junos_config: deploying vrf from /work/netlab_cicd/hogs/node_files/rtr/vrf] *** ok: [rtr] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [rtr] TASK [Find configuration template for routing] ********************************* skipping: [rtr] TASK [fail] ******************************************************************** skipping: [rtr] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [rtr] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [rtr] TASK [Deploy routing configuration] ******************************************** skipping: [rtr] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* 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 h3 : ok=13 changed=0 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0 h4 : ok=13 changed=0 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0 rtr : ok=31 changed=1 unreachable=0 failed=0 skipped=10 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 h3 OK: 2 h4 OK: 2 The lab tests the basic VRF lite functionality: the device under test has two VRFs with two interfaces in each VRF. * h1 and h2 should be able to ping each other * h3 and h4 should be able to ping each other * h1 should not be able to reach h3