Using transformed lab topology from snapshot file netlab.snapshot.pickle Checking virtualization provider installation OK: libvirt installed and working correctly OK: clab installed and working correctly Starting libvirt nodes creating libvirt management network nl_mgmt_17 provider libvirt: executing flock -E 42 /tmp/netlab.lock vagrant up --provider libvirt Bringing machine 'dut' up with 'libvirt' provider... ==> dut: Checking if box 'arista/veos' version '4.34.2F' is up to date... [fog][WARNING] Unrecognized arguments: libvirt_ip_command ==> dut: Creating image (snapshot of base box volume). ==> dut: Creating domain with the following settings... ==> dut: -- Name: ml-17_dut ==> dut: -- Description: Source: /work/netlab_cicd/Vagrantfile ==> dut: -- Domain type: kvm ==> dut: -- Cpus: 2 ==> dut: -- Feature: acpi ==> dut: -- Feature: apic ==> dut: -- Feature: pae ==> dut: -- Clock offset: utc ==> dut: -- Memory: 2048M ==> dut: -- Management MAC: ca:fe:00:01:00:00 ==> dut: -- Base box: arista/veos ==> dut: -- Storage pool: default ==> dut: -- Image(vda): /var/lib/libvirt/images/ml-17_dut.img, ide, 5G ==> dut: -- Disk driver opts: cache='default' ==> dut: -- Graphics Type: vnc ==> dut: -- Video Type: cirrus ==> dut: -- Video VRAM: 16384 ==> dut: -- Video 3D accel: false ==> dut: -- Keymap: en-us ==> dut: -- TPM Backend: passthrough ==> dut: -- INPUT: type=mouse, bus=ps2 ==> dut: Creating shared folders metadata... ==> dut: Starting domain. ==> dut: Domain launching with graphics connection settings... ==> dut: -- Graphics Port: 5900 ==> dut: -- Graphics IP: 127.0.0.1 ==> dut: -- Graphics Password: Not defined ==> dut: -- Graphics Websocket: 5700 ==> dut: Waiting for domain to get an IP address... ==> dut: Waiting for machine to boot. This may take a few minutes... dut: SSH address: 192.168.17.101:22 dut: SSH username: vagrant dut: SSH auth method: private key dut: Warning: Connection refused. Retrying... ==> dut: Machine booted and ready! Starting clab nodes Recreating clab-augment.yml configuration file for clab provider Created provider configuration file: clab-augment.yml provider clab: executing flock -E 42 /tmp/netlab.lock sudo -E containerlab deploy --reconfigure -t clab-augment.yml 17:04:01 INFO Containerlab started version=0.75.0 17:04:01 INFO Parsing & checking topology file=clab-augment.yml 17:04:01 INFO Removing directory path=/work/netlab_cicd/clab-ml-17 17:04:01 INFO Creating docker network name=nl_mgmt_17 IPv4 subnet=192.168.17.0/24 IPv6 subnet="" MTU=0 17:04:01 INFO Creating lab directory path=/work/netlab_cicd/clab-ml-17 17:04:01 INFO Creating container name=x1 17:04:01 INFO Created link: x1:eth1 ▪┄┄▪ virbr2:bni17n2i1 17:04:02 INFO Executed command node=x1 command="sleep 1" stdout="" 17:04:02 INFO Adding host entries path=/etc/hosts 17:04:02 INFO Adding SSH config for nodes path=/etc/ssh/ssh_config.d/clab-ml-17.conf ╭───────────────┬──────────────────────────────┬─────────┬────────────────╮ │ Name │ Kind/Image │ State │ IPv4/6 Address │ ├───────────────┼──────────────────────────────┼─────────┼────────────────┤ │ clab-ml-17-x1 │ linux │ running │ 192.168.17.102 │ │ │ quay.io/frrouting/frr:10.6.1 │ │ N/A │ ╰───────────────┴──────────────────────────────┴─────────┴────────────────╯ Deploying initial device configurations Creating Device configuration snippets [CREATED] dut: normalize,initial,ospf [CREATED] x1: initial,ospf Config Normalizing device configurations [WARNING]: Found variable using reserved name: hosts PLAY [Normalize device configurations] ***************************************** 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] *************** ok: [dut] => { "msg": "normalize configuration for dut\n=========================================\n!\ninterface Ethernet1\n shutdown\n mac-address caf0.0001.0001\n" } TASK [Deploy normalize configuration] ****************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for dut TASK [eos_config: deploying normalize from /work/netlab_cicd/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: [dut] PLAY RECAP ********************************************************************* dut : ok=8 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 Config Deploying device configurations [INFO] Executing initial configuration for node x1 [INFO] Executing ospf configuration for node x1 [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 [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!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nno ipv6 unicast-routing\n!\n!\nip host x1 10.0.0.2 10.1.0.2\n!\ninterface Management1\n no lldp transmit\n no lldp receive\n!\ninterface Loopback0\n ip address 10.0.0.1/32\n!\ninterface Ethernet1\n no switchport\n mtu 1500\n description dut -> x1\n ip address 10.1.0.1/30\n mac-address caf0.0001.0001\n!\n no shutdown\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for dut TASK [eos_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/net101/tools/netsim/ansible/tasks/deploy-module.yml for dut => (item=ospf) TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [dut] TASK [Find configuration template for ospf] ************************************ ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for ospf] ******************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "ospf configuration for dut\n=========================================\n!\n! OSPFv2 configuration\n!\nrouter ospf 1\n router-id 10.0.0.1\n interface unnumbered hello mask tx 0.0.0.0\n timers spf delay initial 100 200 500\n timers lsa rx min interval 100\n timers lsa tx delay initial 100 200 500\n\n\n!\ninterface Loopback0\n! \n ip ospf area 0.0.0.0\n!\ninterface Ethernet1\n! dut -> x1\n ip ospf area 0.0.0.0\n ip ospf network point-to-point\n!\n\n" } TASK [Deploy ospf configuration] *********************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for dut TASK [eos_config: deploying ospf from /work/netlab_cicd/node_files/dut/ospf] *** changed: [dut] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut : ok=16 changed=2 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ x1 Script: initial,ospf OK: Lab devices configured This topology tests the "start lab with configuration reload" functionality. You should: * Start the lab with "netlab up" * Save the configuration with "netlab collect -o saved" * Stop the lab with "netlab down" * Restart the lab with "netlab up --snapshot --reload-config saved" * Validate the results with "netlab validate" [WARNING]: Found variable using reserved name: hosts PLAY [Collect device configurations] ******************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [x1] ok: [dut] TASK [Create '/work/netlab_cicd/saved' directory] ****************************** ok: [dut -> localhost] TASK [Find configuration collection script] ************************************ ok: [x1] ok: [dut] TASK [Collect device configurations] ******************************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/fetch-config/eos.yml for dut included: /home/pipi/net101/tools/netsim/ansible/tasks/fetch-config/frr.yml for x1 TASK [arista.eos.eos_facts] **************************************************** ok: [dut] TASK [set_fact] **************************************************************** ok: [dut] TASK [Save FRR running configuration to frr.conf] ****************************** changed: [x1] TASK [Collect FRR configuration] *********************************************** changed: [x1] TASK [set_fact] **************************************************************** ok: [x1] TASK [Collect FRR daemons configuration] *************************************** changed: [x1] TASK [Save FRR daemons to /work/netlab_cicd/saved/x1-daemons] ****************** changed: [x1 -> localhost] TASK [Copy collected configuration to '/work/netlab_cicd/saved' directory] ***** changed: [dut -> localhost] changed: [x1 -> localhost] PLAY RECAP ********************************************************************* dut : ok=7 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 x1 : ok=9 changed=5 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 cwd: /work/netlab_cicd output: saved Checking virtualization provider installation OK: libvirt installed and working correctly OK: clab installed and working correctly Stopping clab nodes provider clab: executing flock -E 42 /tmp/netlab.lock sudo -E containerlab destroy --cleanup -t clab-augment.yml 17:04:19 INFO Parsing & checking topology file=clab-augment.yml 17:04:19 INFO Parsing & checking topology file=clab-augment.yml 17:04:19 INFO Destroying lab name=ml-17 17:04:20 INFO Removed container name=clab-ml-17-x1 17:04:20 INFO Removing host entries path=/etc/hosts 17:04:20 INFO Removing SSH config path=/etc/ssh/ssh_config.d/clab-ml-17.conf Stopping libvirt nodes provider libvirt: executing flock -E 42 /tmp/netlab.lock vagrant destroy -f [fog][WARNING] Unrecognized arguments: libvirt_ip_command ==> dut: Removing domain... ==> dut: Deleting the machine folder