Creating Device configuration snippets [CREATED] h1: initial,routing [CREATED] h2: initial,routing [CREATED] h3: initial,routing [CREATED] h4: initial,routing [CREATED] h5: initial,routing [CREATED] h6: initial,routing [CREATED] h1a: initial,routing [CREATED] h2a: initial,routing [CREATED] h4a: initial,routing [CREATED] h5a: initial,routing [CREATED] s1: initial,vlan,vxlan,ospf [CREATED] s2: initial,vlan,vxlan,ospf [CREATED] s3: initial,vlan,vxlan,ospf Config Deploying device configurations [INFO] Executing initial configuration for node h1 (namespace clab- ml-85-h1) [INFO] Executing initial configuration for node h2 (namespace clab- ml-85-h2) [INFO] Executing initial configuration for node h3 (namespace clab- ml-85-h3) [INFO] Executing initial configuration for node h4 (namespace clab- ml-85-h4) [INFO] Executing initial configuration for node h5 (namespace clab- ml-85-h5) [INFO] Executing initial configuration for node h6 (namespace clab- ml-85-h6) [INFO] Executing initial configuration for node h1a (namespace clab- ml-85-h1a) [INFO] Executing initial configuration for node h2a (namespace clab- ml-85-h2a) [INFO] Executing initial configuration for node h4a (namespace clab- ml-85-h4a) [INFO] Executing initial configuration for node h5a (namespace clab- ml-85-h5a) [INFO] Executing initial configuration for node s3 [INFO] Executing routing configuration for node h1 (namespace clab- ml-85-h1) [INFO] Executing routing configuration for node h2 (namespace clab- ml-85-h2) [INFO] Executing routing configuration for node h3 (namespace clab- ml-85-h3) [INFO] Executing routing configuration for node h4 (namespace clab- ml-85-h4) [INFO] Executing routing configuration for node h6 (namespace clab- ml-85-h6) [INFO] Executing routing configuration for node h5 (namespace clab- ml-85-h5) [INFO] Executing routing configuration for node h1a (namespace clab- ml-85-h1a) [INFO] Executing routing configuration for node h4a (namespace clab- ml-85-h4a) [INFO] Executing routing configuration for node h2a (namespace clab- ml-85-h2a) [INFO] Executing routing configuration for node h5a (namespace clab- ml-85-h5a) [INFO] Executing vlan configuration for node s3 [INFO] Executing vxlan configuration for node s3 [INFO] Executing ospf configuration for node s3 [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: [s1] ok: [s2] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2 TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [s1] ok: [s2] TASK [Find configuration template for normalize] ******************************* ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [s1] skipping: [s2] TASK [Deploy normalize configuration] ****************************************** skipping: [s1] skipping: [s2] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [s1] ok: [s2] TASK [Find configuration template for initial] ********************************* ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [s1] => { "msg": "initial configuration for s1\n=========================================\nhostname s1\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host h1 172.16.0.1\nip host h1a 172.16.0.7\nip host h2 172.16.0.2\nip host h2a 172.16.0.8\nip host h3 172.16.0.3\nip host h4 172.16.1.4\nip host h4a 172.16.1.9\nip host h5 172.16.1.5\nip host h5a 172.16.1.10\nip host h6 172.16.1.6\nip host s2 10.0.0.12 10.1.0.2 10.1.0.5\nip host s3 10.0.0.13 10.1.0.6 10.1.0.10\n!\nip routing\n!\nno ipv6 unicast-routing\n!\n\n!\n!\ninterface Loopback0\n ip address 10.0.0.11 255.255.255.255\n!\ninterface GigabitEthernet1\n no lldp transmit\n no lldp receive\n!\ninterface GigabitEthernet2\n description s1 -> s2\n mtu 1600\n ip address 10.1.0.1 255.255.255.252\n no shutdown\n!\ninterface GigabitEthernet3\n description s1 -> s3\n mtu 1600\n ip address 10.1.0.9 255.255.255.252\n no shutdown\n!\ninterface GigabitEthernet4\n description [Access VLAN red] s1 -> h1\n no shutdown\n!\ninterface GigabitEthernet5\n description [Access VLAN red] s1 -> h1a\n no shutdown\n!\ninterface GigabitEthernet6\n description [Access VLAN blue] s1 -> h4\n no shutdown\n!\ninterface GigabitEthernet7\n description [Access VLAN blue] s1 -> h4a\n no shutdown\n!\ninterface BDI1000\n description VLAN red (1000) -> [h1,h1a,h2,h2a,s2...]\n no shutdown\n!\ninterface BDI1001\n description VLAN blue (1001) -> [h4,h4a,h5,h5a,s2...]\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" } ok: [s2] => { "msg": "initial configuration for s2\n=========================================\nhostname s2\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host h1 172.16.0.1\nip host h1a 172.16.0.7\nip host h2 172.16.0.2\nip host h2a 172.16.0.8\nip host h3 172.16.0.3\nip host h4 172.16.1.4\nip host h4a 172.16.1.9\nip host h5 172.16.1.5\nip host h5a 172.16.1.10\nip host h6 172.16.1.6\nip host s1 10.0.0.11 10.1.0.1 10.1.0.9\nip host s3 10.0.0.13 10.1.0.6 10.1.0.10\n!\nip routing\n!\nno ipv6 unicast-routing\n!\n\n!\n!\ninterface Loopback0\n ip address 10.0.0.12 255.255.255.255\n!\ninterface GigabitEthernet1\n no lldp transmit\n no lldp receive\n!\ninterface GigabitEthernet2\n description s2 -> s1\n mtu 1600\n ip address 10.1.0.2 255.255.255.252\n no shutdown\n!\ninterface GigabitEthernet3\n description s2 -> s3\n mtu 1600\n ip address 10.1.0.5 255.255.255.252\n no shutdown\n!\ninterface GigabitEthernet4\n description [Access VLAN red] s2 -> h2\n no shutdown\n!\ninterface GigabitEthernet5\n description [Access VLAN red] s2 -> h2a\n no shutdown\n!\ninterface GigabitEthernet6\n description [Access VLAN blue] s2 -> h5\n no shutdown\n!\ninterface GigabitEthernet7\n description [Access VLAN blue] s2 -> h5a\n no shutdown\n!\ninterface BDI1000\n description VLAN red (1000) -> [h1,h1a,s1,h2,h2a...]\n no shutdown\n!\ninterface BDI1001\n description VLAN blue (1001) -> [h4,h4a,s1,h5,h5a...]\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/net101/tools/netsim/ansible/tasks/deploy-config/ios.yml for s1, s2 TASK [ios_config: deploying initial from /work/netlab_cicd/other_vm/node_files/s1/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: [s1] changed: [s2] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [s1] ok: [s2] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2 => (item=vlan) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2 => (item=vxlan) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2 => (item=routing) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2 => (item=ospf) TASK [Figure out whether to deploy the module vlan on current device] ********** ok: [s1] ok: [s2] TASK [Find configuration template for vlan] ************************************ ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] TASK [Find configuration deployment deploy_script for vlan] ******************** ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [s1] => { "msg": "vlan configuration for s1\n=========================================\n!\nbridge-domain 1000\n member GigabitEthernet4 service-instance 1000\n member GigabitEthernet5 service-instance 1000\n!\nbridge-domain 1001\n member GigabitEthernet6 service-instance 1001\n member GigabitEthernet7 service-instance 1001\n!\ninterface GigabitEthernet4\n service instance 1000 ethernet\n encapsulation untagged\n!\ninterface GigabitEthernet5\n service instance 1000 ethernet\n encapsulation untagged\n!\ninterface GigabitEthernet6\n service instance 1001 ethernet\n encapsulation untagged\n!\ninterface GigabitEthernet7\n service instance 1001 ethernet\n encapsulation untagged\n" } ok: [s2] => { "msg": "vlan configuration for s2\n=========================================\n!\nbridge-domain 1000\n member GigabitEthernet4 service-instance 1000\n member GigabitEthernet5 service-instance 1000\n!\nbridge-domain 1001\n member GigabitEthernet6 service-instance 1001\n member GigabitEthernet7 service-instance 1001\n!\ninterface GigabitEthernet4\n service instance 1000 ethernet\n encapsulation untagged\n!\ninterface GigabitEthernet5\n service instance 1000 ethernet\n encapsulation untagged\n!\ninterface GigabitEthernet6\n service instance 1001 ethernet\n encapsulation untagged\n!\ninterface GigabitEthernet7\n service instance 1001 ethernet\n encapsulation untagged\n" } TASK [Deploy vlan configuration] *********************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/ios.yml for s1, s2 TASK [ios_config: deploying vlan from /work/netlab_cicd/other_vm/node_files/s1/vlan] *** changed: [s1] changed: [s2] TASK [Figure out whether to deploy the module vxlan on current device] ********* ok: [s1] ok: [s2] TASK [Find configuration template for vxlan] *********************************** ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] TASK [Find configuration deployment deploy_script for vxlan] ******************* ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [s1] => { "msg": "vxlan configuration for s1\n=========================================\ninterface nve1\n no shutdown\n source-interface Loopback0\n member vni 5000\n ingress-replication 10.0.0.12\n ingress-replication 10.0.0.13\n member vni 5001\n ingress-replication 10.0.0.12\n ingress-replication 10.0.0.13\n!\nbridge-domain 1000\n member vni 5000\n!\nbridge-domain 1001\n member vni 5001\n" } ok: [s2] => { "msg": "vxlan configuration for s2\n=========================================\ninterface nve1\n no shutdown\n source-interface Loopback0\n member vni 5000\n ingress-replication 10.0.0.11\n ingress-replication 10.0.0.13\n member vni 5001\n ingress-replication 10.0.0.11\n ingress-replication 10.0.0.13\n!\nbridge-domain 1000\n member vni 5000\n!\nbridge-domain 1001\n member vni 5001\n" } TASK [Deploy vxlan configuration] ********************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/ios.yml for s1, s2 TASK [ios_config: deploying vxlan from /work/netlab_cicd/other_vm/node_files/s1/vxlan] *** changed: [s1] changed: [s2] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [s1] ok: [s2] TASK [Find configuration template for routing] ********************************* skipping: [s1] skipping: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [s1] skipping: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [s1] skipping: [s2] TASK [Deploy routing configuration] ******************************************** skipping: [s1] skipping: [s2] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [s1] ok: [s2] TASK [Find configuration template for ospf] ************************************ ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [s1] => { "msg": "ospf configuration for s1\n=========================================\nrouter ospf 1\n router-id 10.0.0.11\n\n!\ninterface Loopback0\n! \n ip ospf 1 area 0.0.0.0\n!\ninterface GigabitEthernet2\n! s1 -> s2\n ip ospf 1 area 0.0.0.0\n ip ospf network point-to-point\n!\ninterface GigabitEthernet3\n! s1 -> s3\n ip ospf 1 area 0.0.0.0\n ip ospf network point-to-point\n!\n\n" } ok: [s2] => { "msg": "ospf configuration for s2\n=========================================\nrouter ospf 1\n router-id 10.0.0.12\n\n!\ninterface Loopback0\n! \n ip ospf 1 area 0.0.0.0\n!\ninterface GigabitEthernet2\n! s2 -> s1\n ip ospf 1 area 0.0.0.0\n ip ospf network point-to-point\n!\ninterface GigabitEthernet3\n! s2 -> s3\n ip ospf 1 area 0.0.0.0\n ip ospf network point-to-point\n!\n\n" } TASK [Deploy ospf configuration] *********************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/ios.yml for s1, s2 TASK [ios_config: deploying ospf from /work/netlab_cicd/other_vm/node_files/s1/ospf] *** changed: [s1] changed: [s2] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* s1 : ok=36 changed=4 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0 s2 : ok=36 changed=4 unreachable=0 failed=0 skipped=12 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 h5 Script: initial,routing h6 Script: initial,routing h1a Script: initial,routing h2a Script: initial,routing h4a Script: initial,routing h5a Script: initial,routing s3 Script: initial,vlan,vxlan,ospf This is the multi-node version of the vxlan-bridging lab. Use it to check that you don't have spanning tree problems in VXLAN overlay * h1, h2 and h3 should be able to ping each other * h4, h5 and h6 should be able to ping each other Please note it might take a while for the lab to work due to OSPF adjacency establishment and STP learning phase