Creating Device configuration snippets [CREATED] h1: initial,routing,_n_h1 [CREATED] h2: initial,routing [CREATED] h3: initial,routing,_n_h3 [CREATED] r1: normalize,initial,ospf,_n_r1 [CREATED] r2: initial,ospf,_n_r2 [CREATED] r3: initial,ospf [CREATED] r4: initial,routing,ospf,_n_r4 Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on r1 Config Deploying device configurations [INFO] Executing initial configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing initial configuration for node h3 (namespace clab- ml-17-h3) [INFO] Executing normalize configuration for node r1 [INFO] Executing initial configuration for node r2 [INFO] Executing initial configuration for node r4 (namespace clab- ml-17-r4) [INFO] Executing routing configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing routing configuration for node h3 (namespace clab- ml-17-h3) [INFO] Executing _n_r4 configuration for node r4 [INFO] Executing _n_h3 configuration for node h3 [INFO] Executing ospf configuration for node r2 [INFO] Executing _n_r2 configuration for node r2 [INFO] Executing initial configuration for node r1 [INFO] Executing ospf configuration for node r1 [INFO] Executing _n_r1 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: [h1] ok: [h2] ok: [r3] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1, h2, r3 TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [h2] ok: [h1] ok: [r3] TASK [Find configuration template for normalize] ******************************* ok: [h1] ok: [h2] ok: [r3] TASK [fail] ******************************************************************** skipping: [h1] skipping: [h2] skipping: [r3] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [h1] ok: [h2] ok: [r3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [r3] TASK [Deploy normalize configuration] ****************************************** skipping: [h1] skipping: [h2] skipping: [r3] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1, h2, r3 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [h1] ok: [h2] ok: [r3] TASK [Find configuration template for initial] ********************************* skipping: [h1] ok: [h2] ok: [r3] TASK [fail] ******************************************************************** skipping: [h1] skipping: [h2] skipping: [r3] TASK [Find configuration deployment deploy_script for initial] ***************** skipping: [h1] ok: [h2] ok: [r3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [r3] TASK [Deploy initial configuration] ******************************************** skipping: [h1] included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/linux.yml for h2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/frr.yml for r3 TASK [template] **************************************************************** changed: [h2] TASK [Execute /tmp/config.sh to deploy initial config from /work/netlab_cicd/node_files/h2/initial] *** changed: [h2] TASK [template] **************************************************************** changed: [r3] TASK [set_fact] **************************************************************** ok: [r3] TASK [run /tmp/config.sh to deploy initial config from /work/netlab_cicd/node_files/r3/initial] *** changed: [r3] TASK [run vtysh to import initial config from /work/netlab_cicd/node_files/r3/initial] *** skipping: [r3] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [h2] ok: [h1] ok: [r3] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1, h2, r3 => (item=routing) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for h1, h2, r3 => (item=ospf) TASK [Figure out whether to deploy the module routing on current device] ******* ok: [h1] ok: [h2] ok: [r3] TASK [Find configuration template for routing] ********************************* skipping: [h1] skipping: [r3] ok: [h2] TASK [fail] ******************************************************************** skipping: [h1] skipping: [h2] skipping: [r3] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [h1] skipping: [r3] ok: [h2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [r3] skipping: [h2] TASK [Deploy routing configuration] ******************************************** skipping: [h1] skipping: [r3] included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/linux.yml for h2 TASK [template] **************************************************************** changed: [h2] TASK [Execute /tmp/config.sh to deploy routing config from /work/netlab_cicd/node_files/h2/routing] *** changed: [h2] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [h1] ok: [h2] ok: [r3] TASK [Find configuration template for ospf] ************************************ skipping: [h1] skipping: [h2] ok: [r3] TASK [fail] ******************************************************************** skipping: [h1] skipping: [h2] skipping: [r3] TASK [Find configuration deployment deploy_script for ospf] ******************** skipping: [h1] skipping: [h2] ok: [r3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [r3] TASK [Deploy ospf configuration] *********************************************** skipping: [h1] skipping: [h2] included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/frr.yml for r3 TASK [template] **************************************************************** changed: [r3] TASK [set_fact] **************************************************************** ok: [r3] TASK [run /tmp/config.sh to deploy ospf config from /work/netlab_cicd/node_files/r3/ospf] *** skipping: [r3] TASK [run vtysh to import ospf config from /work/netlab_cicd/node_files/r3/ospf] *** changed: [r3] PLAY [Deploy custom deployment templates] ************************************** TASK [Run custom configuration deployment scripts] ***************************** skipping: [h1] => (item=_n_r2) skipping: [h1] => (item=_n_r1) skipping: [h1] => (item=_n_r4) skipping: [h1] => (item=_n_h3) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-custom-config.yml for h1 => (item=_n_h1) TASK [Find configuration template] ********************************************* ok: [h1] TASK [fail] ******************************************************************** skipping: [h1] TASK [Check is the configuration template is a file] *************************** ok: [h1 -> localhost] TASK [fail] ******************************************************************** skipping: [h1] TASK [Process template /work/netlab_cicd/node_files/h1/_n_h1 for h1] *********** skipping: [h1] TASK [Find custom configuration deployment script] ***************************** ok: [h1] TASK [Run the configuration deployment script] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/linux-clab.yml for h1 TASK [Define script filename and determine whether to execute in netns] ******** ok: [h1] TASK [Create a temporary file for the rendered script] ************************* changed: [h1 -> localhost] TASK [Create container setup script from /work/netlab_cicd/node_files/h1/_n_h1] *** changed: [h1 -> localhost] TASK [Copy script into running container at /tmp/config-h1__n_h1.sh] *********** changed: [h1 -> localhost] TASK [Execute /tmp/config-h1__n_h1.sh to deploy _n_h1 config based on /work/netlab_cicd/node_files/h1/_n_h1] *** changed: [h1] TASK [Container configuration for _n_h1 based on /work/netlab_cicd/node_files/h1/_n_h1 executed in netns] *** skipping: [h1] TASK [Remove temporary file /tmp/h1__n_h1-vj71cs5j.sh] ************************* changed: [h1 -> localhost] PLAY RECAP ********************************************************************* h1 : ok=23 changed=5 unreachable=0 failed=0 skipped=22 rescued=0 ignored=0 h2 : ok=22 changed=4 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0 r3 : ok=24 changed=4 unreachable=0 failed=0 skipped=14 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ h1 Script: initial,routing h3 Script: initial,routing,_n_h3 r1 Script: normalize,initial,ospf,_n_r1 r2 Script: initial,ospf,_n_r2 r4 Script: initial,_n_r4 This topology tests various device configuration mechanisms