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 [CREATED] h1: initial,routing [CREATED] h2: initial,routing [CREATED] h3: initial,routing [CREATED] h4: initial,routing [CREATED] h5: 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] Executing initial configuration for node h3 (namespace clab- ml_17-h3) [INFO] Executing routing configuration for node h3 (namespace clab- ml_17-h3) [INFO] Executing initial configuration for node h4 (namespace clab- ml_17-h4) [INFO] Executing routing configuration for node h4 (namespace clab- ml_17-h4) [INFO] Executing initial configuration for node h5 (namespace clab- ml_17-h5) [INFO] Executing routing configuration for node h5 (namespace clab- ml_17-h5) [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: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: [h5] ok: [dut] TASK [Generic readiness tests] ************************************************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] skipping: [h5] 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). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (19 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: [h3] ok: [h4] ok: [h5] ok: [dut] TASK [Wait for device to become ready] ***************************************** skipping: [dut] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] skipping: [h5] 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 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 h5 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: [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: [h5] TASK [Find configuration template for normalize] ******************************* ok: [h5] TASK [fail] ******************************************************************** skipping: [h5] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [h5] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h5] TASK [Deploy normalize configuration] ****************************************** skipping: [h5] 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 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 h5 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 h1 172.16.1.2\nip host h2 172.16.1.3\nip host h3 172.16.1.4\nip host h4 172.16.0.5\nip host h5 172.16.0.6\n!\nip routing\n!\nno ipv6 unicast-routing\n!\n!\nbridge irb\n!\nbridge 1 protocol vlan-bridge\nbridge 1 route ip\n!\nbridge 2 protocol vlan-bridge\nbridge 2 route ip\n!\n\n!\n!\n!\ninterface Ethernet0/0\n no lldp transmit\n no lldp receive\n!\ninterface Ethernet0/1\n description [Access VLAN br_default] dut -> h4\n no shutdown\n!\ninterface Ethernet0/2\n description [Access VLAN br_default] dut -> h5\n no shutdown\n!\ninterface Ethernet0/3\n description [Access VLAN br_vlan_100] dut -> h1\n no shutdown\n!\ninterface Ethernet1/0\n description [Access VLAN br_vlan_100] dut -> h2\n no shutdown\n!\ninterface Ethernet1/1\n description [Access VLAN br_vlan_100] dut -> h3\n no shutdown\n!\ninterface BDI1\n description VLAN br_default (1) -> [h4,h5] [stub]\n no shutdown\n!\ninterface BDI100\n description VLAN br_vlan_100 (100) -> [h1,h2,h3] [stub]\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: [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: [h5] TASK [Find configuration template for initial] ********************************* skipping: [h5] TASK [fail] ******************************************************************** skipping: [h5] TASK [Find configuration deployment deploy_script for initial] ***************** skipping: [h5] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h5] TASK [Deploy initial configuration] ******************************************** skipping: [h5] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [h5] ok: [dut] 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=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=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=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h3 => (item=vlan) 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=vlan) 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 h5 => (item=vlan) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h5 => (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!\nbridge-domain 1\n member Ethernet0/1 service-instance 1\n member Ethernet0/2 service-instance 1\n!\nbridge-domain 100\n member Ethernet0/3 service-instance 100\n member Ethernet1/0 service-instance 100\n member Ethernet1/1 service-instance 100\n!\ninterface Ethernet0/1\n service instance 1 ethernet\n encapsulation untagged\n!\ninterface Ethernet0/2\n service instance 1 ethernet\n encapsulation untagged\n!\ninterface Ethernet0/3\n service instance 100 ethernet\n encapsulation untagged\n!\ninterface Ethernet1/0\n service instance 100 ethernet\n encapsulation untagged\n!\ninterface Ethernet1/1\n service instance 100 ethernet\n encapsulation untagged\n" } TASK [Deploy vlan configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying vlan from /work/netlab_cicd/node_files/dut/vlan] *** 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: [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 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 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 vlan on current device] ********** ok: [h3] TASK [Find configuration template for vlan] ************************************ skipping: [h3] TASK [fail] ******************************************************************** skipping: [h3] TASK [Find configuration deployment deploy_script for vlan] ******************** skipping: [h3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h3] TASK [Deploy vlan 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 vlan on current device] ********** ok: [h4] TASK [Find configuration template for vlan] ************************************ skipping: [h4] TASK [fail] ******************************************************************** skipping: [h4] TASK [Find configuration deployment deploy_script for vlan] ******************** skipping: [h4] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h4] TASK [Deploy vlan 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 vlan on current device] ********** ok: [h5] TASK [Find configuration template for vlan] ************************************ skipping: [h5] TASK [fail] ******************************************************************** skipping: [h5] TASK [Find configuration deployment deploy_script for vlan] ******************** skipping: [h5] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h5] TASK [Deploy vlan configuration] *********************************************** skipping: [h5] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [h5] TASK [Find configuration template for routing] ********************************* skipping: [h5] TASK [fail] ******************************************************************** skipping: [h5] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [h5] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h5] TASK [Deploy routing configuration] ******************************************** skipping: [h5] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=28 changed=2 unreachable=0 failed=0 skipped=11 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 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 h5 : 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 h3 OK: 2 h4 OK: 2 h5 OK: 2 This scenario tests the basic "bridge" functionality. As a "bridge" is nothing more than a VLAN-capable node having all interfaces in VLAN 1, this test effectively: * Tests whether the device can take the role 'bridge' * Whether the interfaces are all configured in the same VLAN * Whether the device configuration template handles VLAN 1, or the device quirks take extra efforts to work around that