Creating Device configuration snippets [CREATED] relay: normalize,initial,ospf,dhcp [CREATED] dut_c1: initial,ospf,dhcp [CREATED] dut_c2: initial,ospf,dhcp [CREATED] server: initial,dhcp Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on relay Config Normalizing device configurations [INFO] Executing normalize configuration for node relay Config Deploying device configurations [INFO] Executing initial configuration for node relay [INFO] Executing initial configuration for node server (namespace clab-ml-17-server) [INFO] Executing ospf configuration for node relay [INFO] Executing dhcp 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: [dut_c1] ok: [dut_c2] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut_c1, dut_c2 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut_c1] ok: [dut_c2] TASK [Find configuration template for initial] ********************************* ok: [dut_c1] ok: [dut_c2] TASK [fail] ******************************************************************** skipping: [dut_c1] skipping: [dut_c2] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut_c2] ok: [dut_c1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut_c1] => { "msg": "initial configuration for dut_c1\n=========================================\nhostname dut_c1\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host dut_c2 10.0.0.3\nip host relay 10.0.0.1 2001:db8:cafe::1 2001:db8:cafe:1::1\nip host server 2001:db8:cafe:1::4\n!\nip routing\n!\nipv6 unicast-routing\n!\n!\ninterface Loopback0\n ip address 10.0.0.2 255.255.255.255\n!\ninterface GigabitEthernet0/0\n no lldp transmit\n no lldp receive\n!\ninterface GigabitEthernet0/1\n description dut_c1 -> [dut_c2,relay]\n no shutdown\n!\n!\n! Configure DHCP client - has to be done before routing protocol config, but after generic interface config\n!\ninterface GigabitEthernet0/1\n ipv6 enable\n ipv6 address dhcp\n\n!\nline vty 0 4\n exec-timeout 0 0 \n!\nno banner exec\nno banner login\nno banner incoming\n" } ok: [dut_c2] => { "msg": "initial configuration for dut_c2\n=========================================\nhostname dut_c2\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host dut_c1 10.0.0.2\nip host relay 10.0.0.1 2001:db8:cafe::1 2001:db8:cafe:1::1\nip host server 2001:db8:cafe:1::4\n!\nip routing\n!\nipv6 unicast-routing\n!\n!\ninterface Loopback0\n ip address 10.0.0.3 255.255.255.255\n!\ninterface GigabitEthernet0/0\n no lldp transmit\n no lldp receive\n!\ninterface GigabitEthernet0/1\n description dut_c2 -> [dut_c1,relay]\n no shutdown\n!\n!\n! Configure DHCP client - has to be done before routing protocol config, but after generic interface config\n!\ninterface GigabitEthernet0/1\n ipv6 enable\n ipv6 address dhcp\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_c1, dut_c2 TASK [ios_config: deploying initial from /work/netlab_cicd/node_files/dut_c1/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_c1] changed: [dut_c2] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut_c1] ok: [dut_c2] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut_c1, dut_c2 => (item=ospf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut_c1, dut_c2 => (item=dhcp) TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [dut_c1] ok: [dut_c2] TASK [Find configuration template for ospf] ************************************ ok: [dut_c1] ok: [dut_c2] TASK [fail] ******************************************************************** skipping: [dut_c1] skipping: [dut_c2] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [dut_c1] ok: [dut_c2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut_c1] => { "msg": "ospf configuration for dut_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!\n\nrouter ospfv3 1\n router-id 10.0.0.2\n address-family ipv6 unicast\n!\ninterface GigabitEthernet0/1\n! dut_c1 -> [dut_c2,relay]\n ospfv3 1 ipv6 area 0.0.0.0\n!\n\n" } ok: [dut_c2] => { "msg": "ospf configuration for dut_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!\n\nrouter ospfv3 1\n router-id 10.0.0.3\n address-family ipv6 unicast\n!\ninterface GigabitEthernet0/1\n! dut_c2 -> [dut_c1,relay]\n ospfv3 1 ipv6 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 dut_c1, dut_c2 TASK [ios_config: deploying ospf from /work/netlab_cicd/node_files/dut_c1/ospf] *** changed: [dut_c2] changed: [dut_c1] TASK [Figure out whether to deploy the module dhcp on current device] ********** ok: [dut_c1] ok: [dut_c2] TASK [Find configuration template for dhcp] ************************************ ok: [dut_c1] ok: [dut_c2] TASK [fail] ******************************************************************** skipping: [dut_c1] skipping: [dut_c2] TASK [Find configuration deployment deploy_script for dhcp] ******************** ok: [dut_c1] ok: [dut_c2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut_c1] => { "msg": "dhcp configuration for dut_c1\n=========================================\n" } ok: [dut_c2] => { "msg": "dhcp configuration for dut_c2\n=========================================\n" } TASK [Deploy dhcp configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut_c1, dut_c2 TASK [ios_config: deploying dhcp from /work/netlab_cicd/node_files/dut_c1/dhcp] *** ok: [dut_c2] ok: [dut_c1] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut_c1 : ok=23 changed=2 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0 dut_c2 : ok=23 changed=2 unreachable=0 failed=0 skipped=3 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ relay Script: normalize,initial,ospf,dhcp server Script: initial Use this topology to test the OSPF over interfaces using dynamic DHCPv6 addresses. Use 'netlab validate' to check whether your devices acquired dynamic IPv6 addresses and whether they established OSPFv3 adjacency with the DHCP relay.