Creating Device configuration snippets [CREATED] dut: initial,routing,ospf,tunnel.gre [CREATED] r2: initial,routing,ospf,tunnel.gre [CREATED] r3: initial,routing,ospf,tunnel.gre [CREATED] core: initial Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on dut [SSH] SSH server on node dut (device iol) is ready after 25.4 seconds Config Deploying device configurations [INFO] Executing initial configuration for node r2 [INFO] Executing initial configuration for node r3 [INFO] Executing initial configuration for node core [INFO] Executing routing configuration for node r2 [INFO] Executing ospf configuration for node r2 [INFO] Executing tunnel.gre configuration for node r2 [INFO] Executing routing configuration for node r3 [INFO] Executing ospf configuration for node r3 [INFO] Executing tunnel.gre configuration for node r3 [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=========================================\nhostname dut\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host core 10.0.0.4 172.22.0.1 172.22.1.1 2001:db8::4 2001:db8:42::1 2001:db8:42:1::1\nip host r2 10.0.0.2 172.22.1.2 172.23.0.2 2001:db8::2 2001:db8:1::2\nip host r3 10.0.0.3 172.23.1.3 2001:db8::3 2001:db8:42:1::2 2001:db8:1:1::3\n!\nip routing\n!\nipv6 unicast-routing\n!\n!\ninterface Loopback0\n ip address 10.0.0.1 255.255.255.255\n ipv6 address 2001:DB8::1/128\n!\ninterface Ethernet0/0\n no lldp transmit\n no lldp receive\n!\ninterface Ethernet0/1\n description dut -> core [core]\n ip address 172.22.0.2 255.255.255.0\n no shutdown\n!\ninterface Ethernet0/2\n description dut -> core [core6]\n ipv6 nd ra interval 5\n ipv6 address 2001:DB8:42::2/64\n no shutdown\n!\ninterface Tunnel0\n description dut -> r2 [GRE tunnel]\n ip mtu 1400\n ipv6 mtu 1400\n ip address 172.23.0.1 255.255.255.0\n ipv6 nd ra interval 5\n ipv6 address 2001:DB8:1::1/64\n no shutdown\n!\ninterface Tunnel1\n description dut -> r3 [GRE tunnel]\n ip mtu 1400\n ipv6 mtu 1400\n ip address 172.23.1.1 255.255.255.0\n ipv6 nd ra interval 5\n ipv6 address 2001:DB8:1:1::1/64\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 dut TASK [ios_config: deploying initial from /work/netlab_cicd/node_files/dut/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] 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=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=ospf) TASK [Figure out whether to deploy the module routing on current device] ******* ok: [dut] TASK [Find configuration template for routing] ********************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for routing] ***************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "routing configuration for dut\n=========================================\n!\n!\n! Static routes\n!\nip route 172.22.0.0 255.255.0.0 Ethernet0/1 172.22.0.1\nipv6 route 2001:db8:42::/48 Ethernet0/2 2001:db8:42::1\n" } TASK [Deploy routing configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying routing from /work/netlab_cicd/node_files/dut/routing] *** changed: [dut] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [dut] TASK [Find configuration template for ospf] ************************************ ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "ospf configuration for dut\n=========================================\nrouter ospf 1\n router-id 10.0.0.1\n\n!\ninterface Loopback0\n! \n ip ospf 1 area 0.0.0.0\n!\ninterface Tunnel0\n! dut -> r2 [GRE tunnel]\n ip ospf 1 area 0.0.0.0\n ip ospf network point-to-point\n ip ospf hello-interval 1\n ip ospf dead-interval 3\n!\ninterface Tunnel1\n! dut -> r3 [GRE tunnel]\n ip ospf 1 area 0.0.0.0\n ip ospf network point-to-point\n ip ospf hello-interval 1\n ip ospf dead-interval 3\n!\n\nrouter ospfv3 1\n router-id 10.0.0.1\n address-family ipv6 unicast\n!\ninterface Loopback0\n! \n ospfv3 1 ipv6 area 0.0.0.0\n!\ninterface Tunnel0\n! dut -> r2 [GRE tunnel]\n ospfv3 1 ipv6 area 0.0.0.0\n ospfv3 network point-to-point\n ospfv3 hello-interval 1\n ospfv3 dead-interval 3\n!\ninterface Tunnel1\n! dut -> r3 [GRE tunnel]\n ospfv3 1 ipv6 area 0.0.0.0\n ospfv3 network point-to-point\n ospfv3 hello-interval 1\n ospfv3 dead-interval 3\n!\n\n" } TASK [Deploy ospf configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying ospf from /work/netlab_cicd/node_files/dut/ospf] *** changed: [dut] PLAY [Deploy custom deployment templates] ************************************** TASK [Run custom configuration deployment scripts] ***************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-custom-config.yml for dut => (item=tunnel.gre) TASK [Find configuration template] ********************************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Check is the configuration template is a file] *************************** ok: [dut -> localhost] TASK [fail] ******************************************************************** skipping: [dut] TASK [Process template /work/netlab_cicd/node_files/dut/tunnel.gre for dut] **** skipping: [dut] TASK [debug] ******************************************************************* skipping: [dut] TASK [debug] ******************************************************************* skipping: [dut] TASK [Find custom configuration deployment script] ***************************** ok: [dut] TASK [Run the configuration deployment script] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying tunnel.gre from /work/netlab_cicd/node_files/dut/tunnel.gre] *** changed: [dut] PLAY RECAP ********************************************************************* dut : ok=29 changed=4 unreachable=0 failed=0 skipped=8 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ r2 Script: initial,routing,ospf,tunnel.gre r3 Script: initial,routing,ospf,tunnel.gre core Script: initial Test the GRE tunnels. The tested devices has GRE tunnels over IPv4 and IPv6 and runs OSPFv2 and OSPFv3 over them. The probes should receive OSPF routes advertised from the DUT and be able to ping its loopback.