Creating Device configuration snippets [CREATED] dut: initial,bgp,bgp.session [CREATED] x1: initial,bgp,bgp.session [CREATED] x2: initial,bgp [CREATED] x3: initial,bgp,bgp.session Config Deploying device configurations [INFO] Executing initial configuration for node x1 [INFO] Executing initial configuration for node x2 [INFO] Executing initial configuration for node x3 [INFO] Executing bgp configuration for node x1 [INFO] Executing bgp configuration for node x2 [INFO] Executing bgp configuration for node x3 [INFO] Executing bgp.session configuration for node x1 [INFO] Executing bgp.session configuration for node x3 [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 [Normalize config on bridge-like devices] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [dut] TASK [Find configuration template for normalize] ******************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] TASK [Deploy normalize configuration] ****************************************** skipping: [dut] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/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 x1 10.0.0.2 10.1.0.2\nip host x2 10.0.0.3 10.1.0.6\nip host x3 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 GigabitEthernet1\n no lldp transmit\n no lldp receive\n!\ninterface GigabitEthernet2\n description dut -> x1 [external]\n ip address 10.1.0.1 255.255.255.252\n no shutdown\n!\ninterface GigabitEthernet3\n description dut -> x2 [external]\n ip address 10.1.0.5 255.255.255.252\n no shutdown\n!\ninterface GigabitEthernet4\n description dut -> x3 [external]\n ip address 10.1.0.9 255.255.255.252\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 dut TASK [ios_config: deploying initial from /work/netlab_cicd/other_vm/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/net101/tools/netsim/ansible/tasks/deploy-module.yml for dut => (item=routing) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for dut => (item=bgp) TASK [Figure out whether to deploy the module routing on current device] ******* ok: [dut] TASK [Find configuration template for routing] ********************************* skipping: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] TASK [Deploy routing configuration] ******************************************** skipping: [dut] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [dut] TASK [Find configuration template for bgp] ************************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** 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.1.0.2 remote-as 65100\n neighbor 10.1.0.2 description x1\n\n neighbor 10.1.0.6 remote-as 65101\n neighbor 10.1.0.6 description x2\n\n neighbor 10.1.0.10 remote-as 65102\n neighbor 10.1.0.10 description x3\n\n!\n address-family ipv4\n bgp scan-time 5\n!\n network 10.0.0.1 mask 255.255.255.255\n\n!\n neighbor 10.1.0.2 activate\n neighbor 10.1.0.2 advertisement-interval 0\n neighbor 10.1.0.2 send-community standard\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" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying bgp from /work/netlab_cicd/other_vm/node_files/dut/bgp] *** changed: [dut] PLAY [Deploy custom deployment templates] ************************************** TASK [Run custom configuration deployment scripts] ***************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-custom-config.yml for dut => (item=bgp.session) 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/other_vm/node_files/dut/bgp.session 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/net101/tools/netsim/ansible/tasks/deploy-config/ios.yml for dut TASK [ios_config: deploying bgp.session from /work/netlab_cicd/other_vm/node_files/dut/bgp.session] *** changed: [dut] PLAY RECAP ********************************************************************* dut : ok=28 changed=3 unreachable=0 failed=0 skipped=15 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ x1 Script: initial,bgp,bgp.session x2 Script: initial,bgp x3 Script: initial,bgp,bgp.session Use this topology to test the 'passive BGP peer' functionality. The DUT should establish an EBGP sesion with X1 (DUT is active) and X2 (X2 is active) but not with X3 (both are passive).