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] dut: initial,vlan,gateway [CREATED] r2: normalize,initial,vlan,gateway [CREATED] h1: initial,routing [CREATED] h2: initial,routing [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] 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:169:1 167 ipv4: 10.2.0.0/24 168 prefix: 32 169 hosts: ^ column 1 PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [dut] ok: [r2] TASK [Generic readiness tests] ************************************************* skipping: [h1] skipping: [h2] included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/ssh.yml for dut, r2 => (item=ssh) TASK [Check if 'sshpass' is installed] ***************************************** ok: [dut -> localhost] TASK [Check for 'timeout' command] ********************************************* ok: [dut -> localhost] ok: [r2 -> localhost] TASK [Execute local ssh command to check ssh readiness] ************************ FAILED - RETRYING: [r2 -> localhost]: Execute local ssh command to check ssh readiness (20 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (40 retries left). ok: [r2 -> localhost] FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (39 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (38 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (37 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (36 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (35 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (34 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (33 retries left). ok: [dut -> localhost] TASK [Confirm dut SSH server works] ******************************************** ok: [dut] => { "msg": "Node dut is ready." } ok: [r2] => { "msg": "Node r2 is ready." } TASK [Find device readiness script] ******************************************** ok: [h1] ok: [h2] ok: [dut] ok: [r2] TASK [Wait for device to become ready] ***************************************** skipping: [r2] skipping: [h1] skipping: [h2] 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 r2 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 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: [r2] TASK [Find configuration template for normalize] ******************************* ok: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [r2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r2] => { "msg": "normalize configuration for r2\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 r2 TASK [eos_config: deploying normalize from /work/netlab_cicd/node_files/r2/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: [r2] 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 [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 r2 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 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 r2 inet 10.0.0.2;\n h1 inet 172.16.33.3;\n h2 inet 172.16.44.4;\n }\n}\n\n\ninterfaces {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n}\ninterfaces {\n ge-0/0/0 {\n mtu 1514;\n }\n ge-0/0/1 {\n mtu 1514;\n }\n\n lo0.0 {\n \n family inet {\n address 10.0.0.1/32;\n }\n \n }\n ge-0/0/0.0 {\n description \"dut -> r2\";\n \n \n }\n ge-0/0/1.0 {\n description \"dut -> [r2,h2]\";\n \n family inet {\n address 172.16.44.1/24;\n }\n family inet6 {\n address 2001:db8:cafe:44::1/64;\n }\n \n }\n irb.1000 {\n description \"VLAN access (1000) -> [h1,r2]\";\n \n family inet {\n address 172.16.33.1/24;\n mtu 1500;\n }\n family inet6 {\n address 2001:db8:cafe:33::1/64;\n mtu 1500;\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 irb.1000;\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/node_files/dut/initial] *** [WARNING]: mgd: statement has no contents; ignored changed: [dut] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [r2] TASK [Find configuration template for initial] ********************************* ok: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [r2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r2] => { "msg": "initial configuration for r2\n=========================================\nhostname r2\n!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nipv6 unicast-routing\n!\n!\nip host dut 10.0.0.1 172.16.44.1 172.16.33.1\nip host h1 172.16.33.3\nip host h2 172.16.44.4\nipv6 host dut 2001:db8:cafe:44::1\nipv6 host h1 2001:db8:cafe:33::3\nipv6 host h2 2001:db8:cafe:44::4\n!\ninterface Management0\n no lldp transmit\n no lldp receive\n!\ninterface Loopback0\n ip address 10.0.0.2/32\n!\ninterface Ethernet1\n no switchport\n description r2 -> dut\n mac-address caf0.0002.0001\n!\n no shutdown\n!\ninterface Ethernet2\n no switchport\n description r2 -> [dut,h2]\n ip address 172.16.44.2/24\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:cafe:44::2/64\n mac-address caf0.0002.0002\n!\n no shutdown\n!\ninterface Ethernet3\n no switchport\n description [Access VLAN access] r2 -> h1\n!\n no shutdown\n!\ninterface Vlan1000\n description VLAN access (1000) -> [dut,h1]\n ip address 172.16.33.2/24\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:cafe:33::2/64\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r2 TASK [eos_config: deploying initial from /work/netlab_cicd/node_files/r2/initial] *** changed: [r2] 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] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [dut] ok: [r2] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=vlan) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=gateway) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r2 => (item=vlan) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r2 => (item=gateway) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r2 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1 => (item=vlan) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1 => (item=gateway) 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=vlan) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h2 => (item=gateway) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h2 => (item=routing) TASK [Figure out whether to deploy the module vlan on current device] ********** ok: [dut] TASK [Find configuration template for vlan] ************************************ ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for vlan] ******************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "vlan configuration for dut\n=========================================\n\nvlans {\n access {\n vlan-id 1000;\n\n l3-interface irb.1000;\n\n }\n}\n\ninterfaces {\n\n\n ge-0/0/0.0 {\n family ethernet-switching {\n\n interface-mode trunk;\n vlan {\n members [ access ];\n }\n\n }\n }\n\n\n}\n" } TASK [Deploy vlan configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying vlan from /work/netlab_cicd/node_files/dut/vlan] *** changed: [dut] TASK [Figure out whether to deploy the module gateway on current device] ******* ok: [dut] TASK [Find configuration template for gateway] ********************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for gateway] ***************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "gateway configuration for dut\n=========================================\nprotocols {\n vrrp {\n version-3;\n }\n}\n\ninterfaces {\n irb.1000 {\n family inet {\n address 172.16.33.1/24 {\n vrrp-group 217 {\n virtual-address 172.16.33.42;\n priority 30;\n }\n }\n }\n family inet6 {\n address 2001:db8:cafe:33::1/64 {\n vrrp-inet6-group 217 {\n virtual-inet6-address 2001:db8:cafe:33::2a;\n priority 30;\n }\n }\n }\n }\n}\n\n" } TASK [Deploy gateway configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying gateway from /work/netlab_cicd/node_files/dut/gateway] *** 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] TASK [Figure out whether to deploy the module vlan on current device] ********** ok: [r2] TASK [Find configuration template for vlan] ************************************ ok: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for vlan] ******************** ok: [r2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r2] => { "msg": "vlan configuration for r2\n=========================================\nvlan 1000\n name access\n!\n\n!\ninterface Ethernet1\n switchport\n switchport mode trunk\n switchport trunk allowed vlan 1000\n switchport trunk native vlan tag\n!\ninterface Ethernet3\n switchport\n switchport access vlan 1000\n!\ninterface Vlan1000\n" } TASK [Deploy vlan configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r2 TASK [eos_config: deploying vlan from /work/netlab_cicd/node_files/r2/vlan] **** changed: [r2] TASK [Figure out whether to deploy the module gateway on current device] ******* ok: [r2] TASK [Find configuration template for gateway] ********************************* ok: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for gateway] ***************** ok: [r2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r2] => { "msg": "gateway configuration for r2\n=========================================\nno ip icmp redirect\n!\ninterface Vlan1000\n vrrp 217 ipv4 version 3\n vrrp 217 ipv4 checksum pseudo-header exclude\n vrrp 217 ipv4 172.16.33.42\n vrrp 217 ipv6 2001:db8:cafe:33::2a\n vrrp 217 priority-level 20\n vrrp 217 preempt\n" } TASK [Deploy gateway configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r2 TASK [eos_config: deploying gateway from /work/netlab_cicd/node_files/r2/gateway] *** changed: [r2] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [r2] TASK [Find configuration template for routing] ********************************* skipping: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [r2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [r2] TASK [Deploy routing configuration] ******************************************** skipping: [r2] TASK [Figure out whether to deploy the module vlan on current device] ********** ok: [h1] TASK [Find configuration template for vlan] ************************************ skipping: [h1] TASK [fail] ******************************************************************** skipping: [h1] TASK [Find configuration deployment deploy_script for vlan] ******************** skipping: [h1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] TASK [Deploy vlan configuration] *********************************************** skipping: [h1] TASK [Figure out whether to deploy the module gateway on current device] ******* ok: [h1] TASK [Find configuration template for gateway] ********************************* skipping: [h1] TASK [fail] ******************************************************************** skipping: [h1] TASK [Find configuration deployment deploy_script for gateway] ***************** skipping: [h1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] TASK [Deploy gateway 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 vlan on current device] ********** ok: [h2] TASK [Find configuration template for vlan] ************************************ skipping: [h2] TASK [fail] ******************************************************************** skipping: [h2] TASK [Find configuration deployment deploy_script for vlan] ******************** skipping: [h2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h2] TASK [Deploy vlan configuration] *********************************************** skipping: [h2] TASK [Figure out whether to deploy the module gateway on current device] ******* ok: [h2] TASK [Find configuration template for gateway] ********************************* skipping: [h2] TASK [fail] ******************************************************************** skipping: [h2] TASK [Find configuration deployment deploy_script for gateway] ***************** skipping: [h2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h2] TASK [Deploy gateway 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] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=38 changed=3 unreachable=0 failed=0 skipped=11 rescued=0 ignored=0 h1 : ok=15 changed=0 unreachable=0 failed=0 skipped=25 rescued=0 ignored=0 h2 : ok=15 changed=0 unreachable=0 failed=0 skipped=25 rescued=0 ignored=0 r2 : ok=37 changed=4 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 This lab tests IPv4/6 VRRP configuration on an access VLAN. It checks whether the device-under-test (DUT) forwards traffic sent to the VRRP IP/MAC address, whether it has correct VRRP priority, and whether the preemption mechanism works.