Creating Device configuration snippets [CREATED] relay: normalize,initial,dhcp,ospf [CREATED] c1: normalize,initial,dhcp,ospf [CREATED] c2: normalize,initial,dhcp,ospf [CREATED] server: initial,dhcp,routing Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on relay,c1,c2 Config Deploying device configurations [INFO] Executing normalize configuration for node relay [INFO] Executing initial configuration for node server (namespace clab-ml-17-server) [INFO] Executing routing configuration for node server (namespace clab-ml-17-server) [INFO] Executing initial configuration for node relay [INFO] Executing dhcp configuration for node relay [INFO] Executing ospf configuration for node relay [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: [c1] ok: [c2] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for c1, c2 TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [c1] ok: [c2] TASK [Find configuration template for normalize] ******************************* ok: [c2] ok: [c1] TASK [fail] ******************************************************************** skipping: [c1] skipping: [c2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [c1] ok: [c2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [c2] => { "msg": "normalize configuration for c2\n=========================================\n!\ninterface Ethernet0/1\n shutdown\n" } ok: [c1] => { "msg": "normalize configuration for c1\n=========================================\n!\ninterface Ethernet0/1\n shutdown\n" } TASK [Deploy normalize configuration] ****************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for c1, c2 TASK [ios_config: deploying normalize from /work/netlab_cicd/node_files/c1/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: [c1] changed: [c2] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for c1, c2 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [c1] ok: [c2] TASK [Find configuration template for initial] ********************************* ok: [c1] ok: [c2] TASK [fail] ******************************************************************** skipping: [c1] skipping: [c2] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [c1] ok: [c2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [c1] => { "msg": "initial configuration for c1\n=========================================\nhostname c1\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host c2 10.0.0.3\nip host relay 10.0.0.1 172.16.0.1 172.16.1.1\nip host server 172.16.1.4\n!\nip routing\n!\nno ipv6 unicast-routing\n!\n!\ninterface Loopback0\n ip address 10.0.0.2 255.255.255.255\n!\ninterface Ethernet0/0\n no lldp transmit\n no lldp receive\n!\ninterface Ethernet0/1\n no switchport\n description c1 -> [c2,relay]\n mac-address caf0.0002.0001\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: [c2] => { "msg": "initial configuration for c2\n=========================================\nhostname c2\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host c1 10.0.0.2\nip host relay 10.0.0.1 172.16.0.1 172.16.1.1\nip host server 172.16.1.4\n!\nip routing\n!\nno ipv6 unicast-routing\n!\n!\ninterface Loopback0\n ip address 10.0.0.3 255.255.255.255\n!\ninterface Ethernet0/0\n no lldp transmit\n no lldp receive\n!\ninterface Ethernet0/1\n no switchport\n description c2 -> [c1,relay]\n mac-address caf0.0003.0001\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 c1, c2 TASK [ios_config: deploying initial from /work/netlab_cicd/node_files/c1/initial] *** changed: [c2] changed: [c1] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [c1] ok: [c2] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for c1, c2 => (item=dhcp) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for c1, c2 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for c1, c2 => (item=ospf) TASK [Figure out whether to deploy the module dhcp on current device] ********** ok: [c1] ok: [c2] TASK [Find configuration template for dhcp] ************************************ ok: [c1] ok: [c2] TASK [fail] ******************************************************************** skipping: [c1] skipping: [c2] TASK [Find configuration deployment deploy_script for dhcp] ******************** ok: [c1] ok: [c2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [c1] => { "msg": "dhcp configuration for c1\n=========================================\ninterface Ethernet0/1\n ip address dhcp\n" } ok: [c2] => { "msg": "dhcp configuration for c2\n=========================================\ninterface Ethernet0/1\n ip address dhcp\n" } TASK [Deploy dhcp configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for c1, c2 TASK [ios_config: deploying dhcp from /work/netlab_cicd/node_files/c1/dhcp] **** changed: [c1] changed: [c2] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [c2] ok: [c1] TASK [Find configuration template for routing] ********************************* skipping: [c1] skipping: [c2] TASK [fail] ******************************************************************** skipping: [c1] skipping: [c2] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [c1] skipping: [c2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [c1] skipping: [c2] TASK [Deploy routing configuration] ******************************************** skipping: [c1] skipping: [c2] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [c2] ok: [c1] TASK [Find configuration template for ospf] ************************************ ok: [c2] ok: [c1] TASK [fail] ******************************************************************** skipping: [c1] skipping: [c2] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [c1] ok: [c2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [c1] => { "msg": "ospf configuration for c1\n=========================================\nrouter ospf 1\n router-id 10.0.0.2\n\n!\ninterface Loopback0\n! \n ip ospf 1 area 0.0.0.0\n!\ninterface Ethernet0/1\n! c1 -> [c2,relay]\n ip ospf 1 area 0.0.0.0\n!\n\n" } ok: [c2] => { "msg": "ospf configuration for c2\n=========================================\nrouter ospf 1\n router-id 10.0.0.3\n\n!\ninterface Loopback0\n! \n ip ospf 1 area 0.0.0.0\n!\ninterface Ethernet0/1\n! c2 -> [c1,relay]\n ip ospf 1 area 0.0.0.0\n!\n\n" } TASK [Deploy ospf configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for c1, c2 TASK [ios_config: deploying ospf from /work/netlab_cicd/node_files/c1/ospf] **** changed: [c1] changed: [c2] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* c1 : ok=32 changed=4 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0 c2 : ok=32 changed=4 unreachable=0 failed=0 skipped=9 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ relay Script: normalize,initial,dhcp,ospf server Script: initial,routing Use this topology to test the OSPF over interfaces using dynamic DHCP addresses. Use 'netlab validate' to check whether your devices acquired dynamic IPv4 addresses and whether they established OSPF adjacency with the DHCP relay.