[INFO] Creating configuration snippets [CREATED] eos_f: normalize,initial,ospf,bgp,bgp.session [CREATED] eos_nb: normalize,initial,ospf,bgp [CREATED] eos_nd: normalize,initial,ospf,bgp,bgp.session [CREATED] frr_f: initial,ospf,bgp,bgp.session [CREATED] frr_nb: initial,ospf,bgp [CREATED] frr_nd: initial,ospf,bgp,bgp.session [CREATED] bird_f: initial,routing,ospf,bgp [CREATED] bird_nb: initial,routing,ospf,bgp [CREATED] probe: initial,ospf,bgp [INFO] Executing initial configuration for node bird_f [INFO] Executing initial configuration for node bird_nb [INFO] Starting Ansible playbook to deploy the rest of the configurations /home/pipi/.local/lib/python3.10/site-packages/paramiko/pkey.py:100: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0. "cipher": algorithms.TripleDES, /home/pipi/.local/lib/python3.10/site-packages/paramiko/transport.py:259: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0. "class": algorithms.TripleDES, [WARNING]: Found variable using reserved name: hosts PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [frr_f] ok: [frr_nb] ok: [eos_f] ok: [eos_nb] ok: [frr_nd] ok: [probe] ok: [eos_nd] TASK [Generic readiness tests] ************************************************* skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] included: /home/pipi/net101/tools/netsim/ansible/tasks/readiness-check/ssh.yml for eos_f, eos_nb, eos_nd => (item=ssh) TASK [Check if 'sshpass' is installed] ***************************************** ok: [eos_f -> localhost] TASK [Check for 'timeout' command] ********************************************* ok: [eos_nb -> localhost] ok: [eos_f -> localhost] ok: [eos_nd -> localhost] TASK [Execute local ssh command to check ssh readiness] ************************ ok: [eos_f -> localhost] ok: [eos_nb -> localhost] ok: [eos_nd -> localhost] TASK [Confirm eos_f SSH server works] ****************************************** ok: [eos_f] => { "msg": "Node eos_f is ready." } ok: [eos_nb] => { "msg": "Node eos_nb is ready." } ok: [eos_nd] => { "msg": "Node eos_nd is ready." } TASK [Find device readiness script] ******************************************** ok: [frr_f] ok: [frr_nb] ok: [frr_nd] ok: [eos_f] ok: [eos_nb] ok: [probe] ok: [eos_nd] TASK [Wait for device to become ready] ***************************************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for eos_f, eos_nb, eos_nd, frr_f, frr_nb, frr_nd, probe TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [frr_f] ok: [frr_nb] ok: [frr_nd] ok: [probe] ok: [eos_f] ok: [eos_nb] ok: [eos_nd] TASK [Find configuration template for normalize] ******************************* ok: [frr_f] ok: [frr_nb] ok: [probe] ok: [frr_nd] ok: [eos_f] ok: [eos_nb] ok: [eos_nd] TASK [fail] ******************************************************************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [frr_f] ok: [eos_f] ok: [frr_nb] ok: [eos_nb] ok: [frr_nd] ok: [eos_nd] ok: [probe] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Deploy normalize configuration] ****************************************** skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for eos_f, eos_nb, eos_nd TASK [eos_config: deploying normalize from /work/netlab_cicd/node_files/eos_f/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: [eos_f] changed: [eos_nd] changed: [eos_nb] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for eos_f, eos_nb, eos_nd, frr_f, frr_nb, frr_nd, probe TASK [Figure out whether to deploy the module initial on current device] ******* ok: [frr_f] ok: [frr_nb] ok: [frr_nd] ok: [probe] ok: [eos_f] ok: [eos_nb] ok: [eos_nd] TASK [Find configuration template for initial] ********************************* ok: [frr_f] ok: [frr_nb] ok: [frr_nd] ok: [eos_f] ok: [probe] ok: [eos_nb] ok: [eos_nd] TASK [fail] ******************************************************************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [frr_f] ok: [frr_nb] ok: [eos_f] ok: [frr_nd] ok: [eos_nb] ok: [eos_nd] ok: [probe] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for eos_f, eos_nb, eos_nd included: /home/pipi/net101/tools/netsim/ansible/tasks/frr/initial-clab.yml for frr_f, frr_nb, frr_nd, probe TASK [eos_config: deploying initial from /work/netlab_cicd/node_files/eos_f/initial] *** changed: [eos_nd] changed: [eos_nb] changed: [eos_f] TASK [Attempt to load VRF kernel module] *************************************** changed: [frr_f -> localhost] TASK [Disable FRR management VRF when modprobe fails] ************************** skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [include_tasks] *********************************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/frr/deploy-config.yml for frr_f, frr_nb, frr_nd, probe TASK [template] **************************************************************** changed: [frr_f] changed: [frr_nb] changed: [frr_nd] changed: [probe] TASK [set_fact] **************************************************************** ok: [frr_nb] ok: [frr_f] ok: [frr_nd] ok: [probe] TASK [run /tmp/config.sh to deploy initial config from /work/netlab_cicd/node_files/frr_f/initial] *** changed: [frr_f] changed: [frr_nd] changed: [frr_nb] changed: [probe] TASK [run vtysh to import initial config from /work/netlab_cicd/node_files/frr_f/initial] *** skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [frr_f] ok: [frr_nb] ok: [frr_nd] ok: [probe] ok: [eos_f] ok: [eos_nb] ok: [eos_nd] TASK [debug] ******************************************************************* ok: [frr_f] => { "msg": "mod_select: ['routing', 'ospf', 'bgp'] mod_skip: []" } ok: [frr_nb] => { "msg": "mod_select: ['routing', 'ospf', 'bgp'] mod_skip: ['bgp']" } ok: [frr_nd] => { "msg": "mod_select: ['routing', 'ospf', 'bgp'] mod_skip: ['bgp.session']" } ok: [probe] => { "msg": "mod_select: ['routing', 'ospf', 'bgp'] mod_skip: []" } ok: [eos_f] => { "msg": "mod_select: ['routing', 'ospf', 'bgp'] mod_skip: []" } ok: [eos_nb] => { "msg": "mod_select: ['routing', 'ospf', 'bgp'] mod_skip: ['bgp']" } ok: [eos_nd] => { "msg": "mod_select: ['routing', 'ospf', 'bgp'] mod_skip: ['bgp.session']" } TASK [Deploy individual configuration modules] ********************************* skipping: [eos_nb] => (item=bgp) skipping: [frr_nb] => (item=bgp) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for eos_f, eos_nb, eos_nd, frr_f, frr_nb, frr_nd, probe => (item=routing) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for eos_f, eos_nb, eos_nd, frr_f, frr_nb, frr_nd, probe => (item=ospf) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for eos_f, eos_nd, frr_f, frr_nd, probe => (item=bgp) TASK [Figure out whether to deploy the module routing on current device] ******* ok: [frr_f] ok: [frr_nb] ok: [probe] ok: [frr_nd] ok: [eos_f] ok: [eos_nb] ok: [eos_nd] TASK [Find configuration template for routing] ********************************* skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [fail] ******************************************************************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Deploy routing configuration] ******************************************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [frr_f] ok: [frr_nb] ok: [frr_nd] ok: [eos_f] ok: [eos_nb] ok: [probe] ok: [eos_nd] TASK [Find configuration template for ospf] ************************************ ok: [frr_f] ok: [frr_nb] ok: [eos_f] ok: [frr_nd] ok: [eos_nb] ok: [probe] ok: [eos_nd] TASK [fail] ******************************************************************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [frr_f] ok: [frr_nb] ok: [eos_f] ok: [probe] ok: [eos_nb] ok: [frr_nd] ok: [eos_nd] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [eos_f] skipping: [eos_nb] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [Deploy ospf configuration] *********************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for eos_f, eos_nb, eos_nd included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/frr.yml for frr_f, frr_nb, frr_nd, probe TASK [eos_config: deploying ospf from /work/netlab_cicd/node_files/eos_f/ospf] *** changed: [eos_f] changed: [eos_nb] changed: [eos_nd] TASK [template] **************************************************************** changed: [frr_f] changed: [probe] changed: [frr_nb] changed: [frr_nd] TASK [set_fact] **************************************************************** ok: [frr_f] ok: [frr_nb] ok: [frr_nd] ok: [probe] TASK [run /tmp/config.sh to deploy ospf config from /work/netlab_cicd/node_files/frr_f/ospf] *** skipping: [frr_f] skipping: [frr_nb] skipping: [frr_nd] skipping: [probe] TASK [run vtysh to import ospf config from /work/netlab_cicd/node_files/frr_f/ospf] *** changed: [frr_f] changed: [frr_nb] changed: [probe] changed: [frr_nd] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [frr_f] ok: [frr_nd] ok: [probe] ok: [eos_f] ok: [eos_nd] TASK [Find configuration template for bgp] ************************************* ok: [frr_f] ok: [frr_nd] ok: [probe] ok: [eos_f] ok: [eos_nd] TASK [fail] ******************************************************************** skipping: [eos_f] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nd] skipping: [probe] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [frr_f] ok: [frr_nd] ok: [probe] ok: [eos_f] ok: [eos_nd] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [eos_f] skipping: [eos_nd] skipping: [frr_f] skipping: [frr_nd] skipping: [probe] TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for eos_f, eos_nd included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/frr.yml for frr_f, frr_nd, probe TASK [eos_config: deploying bgp from /work/netlab_cicd/node_files/eos_f/bgp] *** changed: [eos_nd] changed: [eos_f] TASK [template] **************************************************************** changed: [frr_nd] changed: [frr_f] changed: [probe] TASK [set_fact] **************************************************************** ok: [frr_f] ok: [frr_nd] ok: [probe] TASK [run /tmp/config.sh to deploy bgp config from /work/netlab_cicd/node_files/frr_f/bgp] *** skipping: [frr_f] skipping: [frr_nd] skipping: [probe] TASK [run vtysh to import bgp config from /work/netlab_cicd/node_files/frr_f/bgp] *** changed: [frr_f] changed: [frr_nd] changed: [probe] PLAY [Deploy custom deployment templates] ************************************** TASK [Run custom configuration deployment scripts] ***************************** skipping: [eos_nd] => (item=bgp.session) skipping: [eos_nd] skipping: [frr_nd] => (item=bgp.session) skipping: [frr_nd] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-custom-config.yml for eos_f, frr_f => (item=bgp.session) TASK [Find configuration template] ********************************************* ok: [frr_f] ok: [eos_f] TASK [fail] ******************************************************************** skipping: [eos_f] skipping: [frr_f] TASK [Check is the configuration template is a file] *************************** ok: [eos_f -> localhost] ok: [frr_f -> localhost] TASK [fail] ******************************************************************** skipping: [eos_f] skipping: [frr_f] TASK [Process template /work/netlab_cicd/node_files/eos_f/bgp.session for eos_f] *** skipping: [frr_f] skipping: [eos_f] TASK [Find custom configuration deployment script] ***************************** ok: [frr_f] ok: [eos_f] TASK [Run the configuration deployment script] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for eos_f included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/frr.yml for frr_f TASK [eos_config: deploying bgp.session from /work/netlab_cicd/node_files/eos_f/bgp.session] *** changed: [eos_f] TASK [template] **************************************************************** changed: [frr_f] TASK [set_fact] **************************************************************** ok: [frr_f] TASK [run /tmp/config.sh to deploy bgp.session config from /work/netlab_cicd/node_files/frr_f/bgp.session] *** changed: [frr_f] TASK [run vtysh to import bgp.session config from /work/netlab_cicd/node_files/frr_f/bgp.session] *** skipping: [frr_f] PLAY RECAP ********************************************************************* eos_f : ok=41 changed=5 unreachable=0 failed=0 skipped=17 rescued=0 ignored=0 eos_nb : ok=28 changed=3 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0 eos_nd : ok=34 changed=4 unreachable=0 failed=0 skipped=15 rescued=0 ignored=0 frr_f : ok=44 changed=9 unreachable=0 failed=0 skipped=24 rescued=0 ignored=0 frr_nb : ok=27 changed=4 unreachable=0 failed=0 skipped=17 rescued=0 ignored=0 frr_nd : ok=35 changed=6 unreachable=0 failed=0 skipped=21 rescued=0 ignored=0 probe : ok=35 changed=6 unreachable=0 failed=0 skipped=20 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ bird_f OK: 1 bird_nb OK: 1 This topology tests the "skip_config" functionality for daemons and devices configured with Bash scripts (future) and Ansible