Creating Device configuration snippets [CREATED] dut: initial,vlan,ospf,vrf,vxlan [CREATED] l2sw: normalize,initial,vlan,vxlan,ospf [CREATED] h1: initial,routing [CREATED] h2: initial,routing Config Normalizing device configurations [WARNING]: Found variable using reserved name: hosts PLAY [Normalize device configurations] ***************************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [l2sw] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for l2sw TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [l2sw] TASK [Find configuration template for normalize] ******************************* ok: [l2sw] TASK [fail] ******************************************************************** skipping: [l2sw] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [l2sw] TASK [Print deployed configuration when running in verbose mode] *************** ok: [l2sw] => { "msg": "normalize configuration for l2sw\n=========================================\n!\ninterface Ethernet1\n shutdown\n mac-address caf0.0002.0001\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 l2sw TASK [eos_config: deploying normalize from /work/netlab_cicd/node_files/l2sw/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 changed: [l2sw] PLAY RECAP ********************************************************************* l2sw : ok=8 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 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 routing configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing routing configuration for node h2 (namespace clab- ml-17-h2) [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: [l2sw] ok: [dut] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, l2sw TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut] ok: [l2sw] TASK [Find configuration template for initial] ********************************* ok: [dut] ok: [l2sw] TASK [fail] ******************************************************************** skipping: [dut] skipping: [l2sw] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut] ok: [l2sw] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "initial configuration for dut\n=========================================\nhostname dut\n!\nlldp\n!\n\nvrf tenant\n rd 65000:1\n!\n\n address-family ipv4 unicast\n route-target import 65000:1\n route-target export 65000:1\n exit-address-family\n\n\n!\nvlan 1000\n name red\n!\nvlan 1001\n name blue\n!\n\n!\n\n!\ninterface mgmt\n no lldp transmit\n no lldp receive\n!\n\n\ninterface loopback 0\n ip address 10.0.0.1/32\n no shutdown\n!\n\ninterface 1/1/1\n shutdown\n mtu 9198\n ip mtu 1600\n description dut -> l2sw\n ip address 10.1.0.1/30\n no shutdown\n!\n\ninterface vlan1000\n vrf attach tenant\n description VLAN red (1000) -> [h1,l2sw]\n ip address 172.16.0.1/24\n no shutdown\n!\n\ninterface vlan1001\n vrf attach tenant\n description VLAN blue (1001) -> [h2,l2sw]\n ip address 172.16.1.1/24\n no shutdown\n!\n\ninterface loopback 1\n vrf attach tenant\n description VRF Loopback tenant\n ip address 10.2.0.1/32\n no shutdown\n!\n!\n" } ok: [l2sw] => { "msg": "initial configuration for l2sw\n=========================================\nhostname l2sw\n!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nno ipv6 unicast-routing\n!\n!\nip host dut 10.0.0.1 10.1.0.1\nip host dut-tenant 172.16.0.1 172.16.1.1 10.2.0.1\nip host h1 172.16.0.3\nip host h2 172.16.1.4\n!\ninterface Management1\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 mtu 1600\n description l2sw -> dut\n ip address 10.1.0.2/30\n mac-address caf0.0002.0001\n!\n no shutdown\n!\ninterface Ethernet2\n no switchport\n description [Access VLAN red] l2sw -> h1\n!\n no shutdown\n!\ninterface Ethernet3\n no switchport\n description [Access VLAN blue] l2sw -> h2\n!\n no shutdown\n!\ninterface Vlan1000\n description VLAN red (1000) -> [dut,h1]\n!\ninterface Vlan1001\n description VLAN blue (1001) -> [dut,h2]\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/arubacx.yml for dut included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for l2sw TASK [tempfile] **************************************************************** changed: [dut -> localhost] TASK [template] **************************************************************** changed: [dut -> localhost] TASK [aoscx_config: deploying initial from /work/netlab_cicd/node_files/dut/initial] *** changed: [dut] TASK [file] ******************************************************************** changed: [dut -> localhost] TASK [eos_config: deploying initial from /work/netlab_cicd/node_files/l2sw/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: [l2sw] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] ok: [l2sw] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, l2sw => (item=vlan) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, l2sw => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, l2sw => (item=ospf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, l2sw => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, l2sw => (item=vxlan) TASK [Figure out whether to deploy the module vlan on current device] ********** ok: [dut] ok: [l2sw] TASK [Find configuration template for vlan] ************************************ ok: [dut] ok: [l2sw] TASK [fail] ******************************************************************** skipping: [dut] skipping: [l2sw] TASK [Find configuration deployment deploy_script for vlan] ******************** ok: [dut] ok: [l2sw] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "vlan configuration for dut\n=========================================\n!\n!\ninterface vlan1000\n!\ninterface vlan1001\n" } ok: [l2sw] => { "msg": "vlan configuration for l2sw\n=========================================\nvlan 1000\n name red\n!\nvlan 1001\n name blue\n!\n\n!\ninterface Ethernet2\n switchport\n switchport access vlan 1000\n!\ninterface Ethernet3\n switchport\n switchport access vlan 1001\n!\ninterface Vlan1000\n!\ninterface Vlan1001\n" } TASK [Deploy vlan configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/arubacx.yml for dut included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for l2sw TASK [tempfile] **************************************************************** changed: [dut -> localhost] TASK [template] **************************************************************** changed: [dut -> localhost] TASK [aoscx_config: deploying vlan from /work/netlab_cicd/node_files/dut/vlan] *** changed: [dut] TASK [file] ******************************************************************** changed: [dut -> localhost] TASK [eos_config: deploying vlan from /work/netlab_cicd/node_files/l2sw/vlan] *** changed: [l2sw] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [dut] ok: [l2sw] TASK [Find configuration template for routing] ********************************* skipping: [dut] skipping: [l2sw] TASK [fail] ******************************************************************** skipping: [dut] skipping: [l2sw] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [dut] skipping: [l2sw] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] skipping: [l2sw] TASK [Deploy routing configuration] ******************************************** skipping: [dut] skipping: [l2sw] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [dut] ok: [l2sw] TASK [Find configuration template for ospf] ************************************ ok: [dut] ok: [l2sw] TASK [fail] ******************************************************************** skipping: [dut] skipping: [l2sw] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [dut] ok: [l2sw] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "ospf configuration for dut\n=========================================\n!\nrouter ospf 1\n router-id 10.0.0.1\n\n\n\n\n\n area 0.0.0.0\n area 0.0.0.0\n\n!\ninterface loopback 0\n ip ospf 1 area 0.0.0.0\n!\ninterface 1/1/1\n! dut -> l2sw\n ip ospf 1 area 0.0.0.0\n ip ospf network point-to-point\n!\n" } ok: [l2sw] => { "msg": "ospf configuration for l2sw\n=========================================\n!\n! OSPFv2 configuration\n!\nrouter ospf 1\n router-id 10.0.0.2\n interface unnumbered hello mask tx 0.0.0.0\n timers spf delay initial 100 200 500\n timers lsa rx min interval 100\n timers lsa tx delay initial 100 200 500\n\n\n!\ninterface Loopback0\n! \n ip ospf area 0.0.0.0\n!\ninterface Ethernet1\n! l2sw -> dut\n ip ospf area 0.0.0.0\n ip ospf network point-to-point\n!\n\n" } TASK [Deploy ospf configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/arubacx.yml for dut included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for l2sw TASK [tempfile] **************************************************************** changed: [dut -> localhost] TASK [template] **************************************************************** changed: [dut -> localhost] TASK [aoscx_config: deploying ospf from /work/netlab_cicd/node_files/dut/ospf] *** changed: [dut] TASK [file] ******************************************************************** changed: [dut -> localhost] TASK [eos_config: deploying ospf from /work/netlab_cicd/node_files/l2sw/ospf] *** changed: [l2sw] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [dut] ok: [l2sw] TASK [Find configuration template for vrf] ************************************* skipping: [l2sw] ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] skipping: [l2sw] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [l2sw] ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [l2sw] ok: [dut] => { "msg": "vrf configuration for dut\n=========================================\n\n" } TASK [Deploy vrf configuration] ************************************************ skipping: [l2sw] included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/arubacx.yml for dut TASK [tempfile] **************************************************************** changed: [dut -> localhost] TASK [template] **************************************************************** changed: [dut -> localhost] TASK [aoscx_config: deploying vrf from /work/netlab_cicd/node_files/dut/vrf] *** ok: [dut] TASK [file] ******************************************************************** changed: [dut -> localhost] TASK [Figure out whether to deploy the module vxlan on current device] ********* ok: [dut] ok: [l2sw] TASK [Find configuration template for vxlan] *********************************** ok: [dut] ok: [l2sw] TASK [fail] ******************************************************************** skipping: [dut] skipping: [l2sw] TASK [Find configuration deployment deploy_script for vxlan] ******************* ok: [dut] ok: [l2sw] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "vxlan configuration for dut\n=========================================\n!\ninterface vxlan 1\n source ip 10.0.0.1\n no shutdown\n vni 5000\n vlan 1000\n vtep-peer 10.0.0.2\n vni 5001\n vlan 1001\n vtep-peer 10.0.0.2\n" } ok: [l2sw] => { "msg": "vxlan configuration for l2sw\n=========================================\ninterface vxlan 1\n vxlan source-interface Loopback0\n vxlan vlan 1000 vni 5000\n vxlan vlan 1000 flood vtep 10.0.0.1\n vxlan vlan 1001 vni 5001\n vxlan vlan 1001 flood vtep 10.0.0.1\n" } TASK [Deploy vxlan configuration] ********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/arubacx.yml for dut included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for l2sw TASK [tempfile] **************************************************************** changed: [dut -> localhost] TASK [template] **************************************************************** changed: [dut -> localhost] TASK [aoscx_config: deploying vxlan from /work/netlab_cicd/node_files/dut/vxlan] *** changed: [dut] TASK [file] ******************************************************************** changed: [dut -> localhost] TASK [eos_config: deploying vxlan from /work/netlab_cicd/node_files/l2sw/vxlan] *** changed: [l2sw] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=54 changed=19 unreachable=0 failed=0 skipped=10 rescued=0 ignored=0 l2sw : ok=34 changed=4 unreachable=0 failed=0 skipped=14 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ h1 Script: initial,routing h2 Script: initial,routing The device under test is a VXLAN router-on-a-stick. This tests check VXLAN-to-VXLAN routing. * h1 and h2 should be able to ping each other