Creating Device configuration snippets [CREATED] h1: initial,routing [CREATED] h2: initial,routing [CREATED] h3: initial,routing [CREATED] h4: initial,routing [CREATED] dut: initial,vlan Config Deploying device configurations [INFO] Executing initial configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing initial configuration for node h2 (namespace clab- ml-17-h2) [INFO] Executing initial 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 h1 (namespace clab- ml-17-h1) [INFO] Executing routing configuration for node h2 (namespace clab- ml-17-h2) [INFO] Executing routing configuration for node h3 (namespace clab- ml-17-h3) [INFO] Executing routing configuration for node h4 (namespace clab- ml-17-h4) [INFO] Starting Ansible playbook to deploy the rest of the configurations [WARNING]: Found variable using reserved name: hosts PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut 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=========================================\n\n/system/identity set name=\"dut\"\n\n/interface/bridge add name=loopback protocol-mode=none\n\n# Host entries\n/ip/dns/static add name=h1 address=172.16.0.1\n/ip/dns/static add name=h2 address=172.16.0.2\n/ip/dns/static add name=h3 address=172.16.1.3\n/ip/dns/static add name=h4 address=172.16.2.4\n\n/ip/address add interface=loopback address=10.0.0.5/32\n\n\n/interface/bridge add name=switch vlan-filtering=yes comment=\"Global Switch Bridge\"\n\n/interface/vlan add name=vlan700 vlan-id=700 interface=switch\n/interface/vlan add name=vlan701 vlan-id=701 interface=switch\n/interface/vlan add name=vlan702 vlan-id=702 interface=switch\n\n\n\n\n\n/interface/ethernet set comment=\"[Access VLAN red] dut -> h1\" ether2\n\n/interface/ethernet set comment=\"[Access VLAN red] dut -> h2\" ether3\n\n/interface/ethernet set comment=\"[Access VLAN blue] dut -> h3\" ether4\n\n/interface/ethernet set comment=\"[Access VLAN green] dut -> h4\" ether5\n\n/interface/vlan set comment=\"VLAN red (700) -> [h1,h2] [stub]\" vlan700\n\n/interface/vlan set comment=\"VLAN blue (701) -> [h3] [stub]\" vlan701\n/ip/address add interface=vlan701 address=172.16.1.5/24\n/ip/address set [find where interface=vlan701] comment=\"VLAN blue (701) -> [h3] [stub]\"\n\n/interface/vlan set comment=\"VLAN green (702) -> [h4] [stub]\" vlan702\n/ip/address add interface=vlan702 address=172.16.2.5/24\n/ip/address set [find where interface=vlan702] comment=\"VLAN green (702) -> [h4] [stub]\"\n\n/ip/neighbor/discovery-settings set discover-interface-list=all\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/routeros7.yml for dut TASK [load initial from /work/netlab_cicd/node_files/dut/initial] ************** ok: [dut] TASK [Run commands on CHR] ***************************************************** changed: [dut] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** 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) 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\n\n/interface/bridge/vlan add bridge=switch vlan-ids=700 tagged=switch\n/interface/bridge/vlan add bridge=switch vlan-ids=701 tagged=switch\n/interface/bridge/vlan add bridge=switch vlan-ids=702 tagged=switch\n\n/interface/bridge/port add bridge=switch interface=ether2 pvid=700\n/interface/bridge/vlan set untagged=([get value-name=untagged [find vlan-ids=700 dynamic=no]],\"ether2\") [find vlan-ids=700 dynamic=no]\n/interface/bridge/port add bridge=switch interface=ether3 pvid=700\n/interface/bridge/vlan set untagged=([get value-name=untagged [find vlan-ids=700 dynamic=no]],\"ether3\") [find vlan-ids=700 dynamic=no]\n/interface/bridge/port add bridge=switch interface=ether4 pvid=701\n/interface/bridge/vlan set untagged=([get value-name=untagged [find vlan-ids=701 dynamic=no]],\"ether4\") [find vlan-ids=701 dynamic=no]\n/interface/bridge/port add bridge=switch interface=ether5 pvid=702\n/interface/bridge/vlan set untagged=([get value-name=untagged [find vlan-ids=702 dynamic=no]],\"ether5\") [find vlan-ids=702 dynamic=no]\n" } TASK [Deploy vlan configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/routeros7.yml for dut TASK [load vlan from /work/netlab_cicd/node_files/dut/vlan] ******************** ok: [dut] TASK [Run commands on CHR] ***************************************************** 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] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=20 changed=2 unreachable=0 failed=0 skipped=7 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ h1 Script: initial,routing h2 Script: initial,routing h3 Script: initial,routing h4 Script: initial,routing The device under test is a mixed layer-2/layer-3 switch. Red VLAN is a layer-2-only VLAN, the device acts as a L2/L3 switch on all other VLANs h1 and h2 should be able to ping each other, but not h3 or h4 h3 and h4 should be able to ping each other, but not h1 or h2