Creating Device configuration snippets [CREATED] dut: initial,vrf [CREATED] h1: initial,routing [CREATED] h2: initial,routing [CREATED] h3: initial,routing [CREATED] h4: initial,routing Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on dut [SSH] SSH server on node dut (device iosxr) is ready after 25.6 seconds Config Deploying device configurations [INFO] Executing initial configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing initial configuration for node h2 (namespace clab- ml-17-h2) [INFO] Executing initial configuration for node h3 (namespace clab- ml-17-h3) [INFO] Executing initial configuration for node h4 (namespace clab- ml-17-h4) [INFO] Executing routing configuration for node h2 (namespace clab- ml-17-h2) [INFO] Executing routing configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing routing configuration for node h4 (namespace clab- ml-17-h4) [INFO] Executing routing configuration for node h3 (namespace clab- ml-17-h3) [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/netlab_gh/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/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!\ndomain lookup disable\n!\nlldp\n no management enable\n!\ndomain ipv4 host h1 172.16.0.2\ndomain ipv4 host h2 172.16.1.3\ndomain ipv4 host h3 172.16.2.4\ndomain ipv4 host h4 172.16.3.5\n!\ninterface Loopback0\n no shutdown\n ipv4 address 10.0.0.1 255.255.255.255\n!\ninterface GigabitEthernet0/0/0/0\n no shutdown\n description dut -> h1 [stub]\n ipv4 address 172.16.0.1 255.255.255.0\n!\ninterface GigabitEthernet0/0/0/1\n no shutdown\n description dut -> h2 [stub]\n ipv4 address 172.16.1.1 255.255.255.0\n!\ninterface GigabitEthernet0/0/0/2\n no shutdown\n description dut -> h3 [stub]\n ipv4 address 172.16.2.1 255.255.255.0\n!\ninterface GigabitEthernet0/0/0/3\n no shutdown\n description dut -> h4 [stub]\n ipv4 address 172.16.3.1 255.255.255.0\n!\ninterface Loopback1\n no shutdown\n description VRF Loopback red\n ipv4 address 10.0.0.42 255.255.255.255\n!\ninterface Loopback2\n no shutdown\n description VRF Loopback blue\n ipv4 address 10.2.0.1 255.255.255.255\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut TASK [iosxr_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=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=routing) TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [dut] TASK [Find configuration template for vrf] ************************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for vrf] ********************* ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "vrf configuration for dut\n=========================================\nvrf red\n rd 65000:1\n!\n address-family ipv4 unicast\n import route-target 65000:1\n export route-target 65000:1\n!\nvrf blue\n rd 65000:2\n!\n address-family ipv4 unicast\n import route-target 65000:2\n export route-target 65000:2\n!\ninterface GigabitEthernet0/0/0/0\n vrf red\n!\ninterface GigabitEthernet0/0/0/1\n vrf red\n!\ninterface GigabitEthernet0/0/0/2\n vrf blue\n!\ninterface GigabitEthernet0/0/0/3\n vrf blue\n!\ninterface Loopback1\n vrf red\n!\ninterface Loopback2\n vrf blue\n!\n" } TASK [Deploy vrf configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/iosxr.yml for dut TASK [iosxr_config: deploying vrf from /work/netlab_cicd/node_files/dut/vrf] *** changed: [dut] 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] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=22 changed=2 unreachable=0 failed=0 skipped=10 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ h1 Script: initial,routing h2 Script: initial,routing h3 Script: initial,routing h4 Script: initial,routing The device under test has two VRFs with two interfaces in each VRF. Each VRF has a loopback interface. * h1 and h2 should be able to ping each other and the VRF loopback interface * h3 and h4 should be able to ping each other and the VRF loopback interface * h1 should not be able to reach h3