Creating Device configuration snippets [CREATED] dut: normalize,initial,routing,ospf,bgp [CREATED] dut2: normalize,initial,bgp [CREATED] x1: initial,bgp [CREATED] x2: initial,bgp [CREATED] r1: initial,ospf,bgp Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on dut,dut2 [SSH] SSH server on node dut (device ioll2) is ready after 7.4 seconds [SSH] SSH server on node dut2 (device ioll2) is ready after 7.4 seconds Config Deploying device configurations [INFO] Executing initial configuration for node x1 [INFO] Executing initial configuration for node x2 [INFO] Executing initial configuration for node r1 [INFO] Executing bgp configuration for node x1 [INFO] Executing bgp configuration for node x2 [INFO] Executing ospf configuration for node r1 [INFO] Executing bgp configuration for node r1 [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] ok: [dut2] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, dut2 TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [dut] ok: [dut2] TASK [Find configuration template for normalize] ******************************* ok: [dut2] ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] skipping: [dut2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [dut] ok: [dut2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "normalize configuration for dut\n=========================================\n!\ninterface Ethernet0/1\n shutdown\n!\ninterface Ethernet0/2\n shutdown\n!\ninterface Ethernet0/3\n shutdown\n!\ninterface Ethernet1/0\n shutdown\n!\ninterface Ethernet1/1\n shutdown\n" } ok: [dut2] => { "msg": "normalize configuration for dut2\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 dut, dut2 TASK [ios_config: deploying normalize from /work/netlab_cicd/cisco_c/node_files/dut/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: [dut2] changed: [dut] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, dut2 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut] ok: [dut2] TASK [Find configuration template for initial] ********************************* ok: [dut] ok: [dut2] TASK [fail] ******************************************************************** skipping: [dut] skipping: [dut2] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut] ok: [dut2] 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 dut2 10.0.0.2 172.0.66.2\nip host r1 10.0.0.5 10.1.0.2 172.42.43.5\nip host x1 10.0.0.3 10.1.0.6\nip host x2 10.0.0.4 10.1.0.10\n!\nip routing\n!\nno ipv6 unicast-routing\n!\n!\ninterface Loopback0\n ip address 10.0.0.1 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 dut -> r1\n ip mtu 1500\n ip address 10.1.0.1 255.255.255.252\n mac-address caf0.0001.0001\n no shutdown\n!\ninterface Ethernet0/2\n no switchport\n description dut -> x1 [external]\n ip mtu 1500\n ip address 10.1.0.5 255.255.255.252\n mac-address caf0.0001.0002\n no shutdown\n!\ninterface Ethernet0/3\n no switchport\n description dut -> x2 [external]\n ip mtu 1500\n ip address 10.1.0.9 255.255.255.252\n mac-address caf0.0001.0003\n no shutdown\n!\ninterface Ethernet1/0\n no switchport\n description dut -> dut2 [external]\n ip mtu 1500\n ip address 172.0.66.1 255.255.255.0\n mac-address caf0.0001.0004\n no shutdown\n!\ninterface Ethernet1/1\n no switchport\n description dut -> stub [stub]\n ip mtu 1500\n ip address 172.0.42.1 255.255.255.0\n mac-address caf0.0001.0005\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: [dut2] => { "msg": "initial configuration for dut2\n=========================================\nhostname dut2\n!\nno ip domain lookup\nlogging buffered 256000\n\n!\nlldp run\n!\nip host dut 10.0.0.1 10.1.0.1 10.1.0.5 10.1.0.9 172.0.66.1 172.0.42.1\nip host r1 10.0.0.5 10.1.0.2 172.42.43.5\nip host x1 10.0.0.3 10.1.0.6\nip host x2 10.0.0.4 10.1.0.10\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 dut2 -> dut [external]\n ip mtu 1500\n ip address 172.0.66.2 255.255.255.0\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" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut, dut2 TASK [ios_config: deploying initial from /work/netlab_cicd/cisco_c/node_files/dut/initial] *** changed: [dut2] changed: [dut] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut2] ok: [dut] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, dut2 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, dut2 => (item=ospf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut, dut2 => (item=bgp) TASK [Figure out whether to deploy the module routing on current device] ******* ok: [dut2] ok: [dut] TASK [Find configuration template for routing] ********************************* skipping: [dut2] ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] skipping: [dut2] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [dut2] ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut2] ok: [dut] => { "msg": "routing configuration for dut\n=========================================\n!\n!\n! Static routes\n!\nip route 172.42.42.0 255.255.255.0 Null0\n" } TASK [Deploy routing configuration] ******************************************** skipping: [dut2] included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying routing from /work/netlab_cicd/cisco_c/node_files/dut/routing] *** changed: [dut] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [dut] ok: [dut2] TASK [Find configuration template for ospf] ************************************ skipping: [dut2] ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] skipping: [dut2] TASK [Find configuration deployment deploy_script for ospf] ******************** skipping: [dut2] ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut2] ok: [dut] => { "msg": "ospf configuration for dut\n=========================================\nrouter ospf 1\n router-id 10.0.0.1\n passive-interface Ethernet1/1\n\n!\ninterface Loopback0\n! \n ip ospf 1 area 0.0.0.0\n!\ninterface Ethernet0/1\n! dut -> r1\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 Ethernet1/1\n! dut -> stub\n ip ospf 1 area 0.0.0.0\n ip ospf hello-interval 1\n ip ospf dead-interval 3\n!\n\n" } TASK [Deploy ospf configuration] *********************************************** skipping: [dut2] included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying ospf from /work/netlab_cicd/cisco_c/node_files/dut/ospf] *** changed: [dut] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [dut2] ok: [dut] TASK [Find configuration template for bgp] ************************************* ok: [dut] ok: [dut2] TASK [fail] ******************************************************************** skipping: [dut] skipping: [dut2] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [dut] ok: [dut2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut2] => { "msg": "bgp configuration for dut2\n=========================================\n!\nip bgp-community new-format\n!\nrouter bgp 65001\n no bgp default ipv4-unicast\n bgp update-delay 5\n bgp nopeerup-delay cold-boot 1\n bgp nopeerup-delay user-initiated 1\n bgp router-id 10.0.0.2\n neighbor 172.0.66.1 remote-as 65000\n neighbor 172.0.66.1 description dut\n\n!\n address-family ipv4\n bgp scan-time 5\n!\n network 10.0.0.2 mask 255.255.255.255\n\n!\n neighbor 172.0.66.1 activate\n neighbor 172.0.66.1 advertisement-interval 0\n neighbor 172.0.66.1 send-community standard\n\n" } ok: [dut] => { "msg": "bgp configuration for dut\n=========================================\n!\nip bgp-community new-format\n!\nrouter bgp 65000\n no bgp default ipv4-unicast\n bgp update-delay 5\n bgp nopeerup-delay cold-boot 1\n bgp nopeerup-delay user-initiated 1\n bgp router-id 10.0.0.1\n neighbor 10.0.0.5 remote-as 65000\n neighbor 10.0.0.5 description r1\n neighbor 10.0.0.5 update-source Loopback0\n\n neighbor 10.1.0.6 remote-as 65100\n neighbor 10.1.0.6 description x1\n\n neighbor 10.1.0.10 remote-as 65101\n neighbor 10.1.0.10 description x2\n\n neighbor 172.0.66.2 remote-as 65001\n neighbor 172.0.66.2 description dut2\n\n!\n address-family ipv4\n bgp scan-time 5\n!\n network 172.42.43.0 mask 255.255.255.0\n\n network 172.42.42.0 mask 255.255.255.0\n\n network 172.0.42.0 mask 255.255.255.0\n\n!\n neighbor 10.0.0.5 activate\n neighbor 10.0.0.5 advertisement-interval 0\n neighbor 10.0.0.5 next-hop-self\n neighbor 10.0.0.5 send-community both\n\n neighbor 10.1.0.6 activate\n neighbor 10.1.0.6 advertisement-interval 0\n neighbor 10.1.0.6 send-community standard\n\n neighbor 10.1.0.10 activate\n neighbor 10.1.0.10 advertisement-interval 0\n neighbor 10.1.0.10 send-community standard\n\n neighbor 172.0.66.2 activate\n neighbor 172.0.66.2 advertisement-interval 0\n neighbor 172.0.66.2 send-community standard\n\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/ios.yml for dut, dut2 TASK [ios_config: deploying bgp from /work/netlab_cicd/cisco_c/node_files/dut/bgp] *** changed: [dut2] changed: [dut] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=37 changed=5 unreachable=0 failed=0 skipped=5 rescued=0 ignored=0 dut2 : ok=27 changed=3 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ x1 Script: initial,bgp x2 Script: initial,bgp r1 Script: initial,ospf,bgp Use this topology to test the origination and propagation of IPv4 prefixes.