Libvirt Utilities
netlab libvirt performs these libvirt-related functions:
package – create a Vagrant box from a VM virtual disk in
qcow2orvmdkformat.remove – remove a Vagrant box and associated libvirt volume(s)
config – display box building recipe.
% netlab libvirt
Usage:
netlab libvirt <action> <parameters>
The 'netlab libvirt' command can execute the following actions:
package Help you create a Vagrant box from a qcow/vmdk virtual disk
config Print the build recipe for the specified Vagrant box
remove Remove the specified Vagrant box or related libvirt volumes
Use 'netlab libvirt <action> --help' to get action-specific help
Building a Vagrant Box
The netlab libvirt package command:
Creates a temporary build directory under the
/tmpdirectoryCopies the specified virtual disk into the build directory.
Starts a VM from the copied virtual disk and connects your terminal to its console
When you disconnect from the VM (follow the build recipe), stops and destroys the VM and builds a Vagrant box
Asks you for the software version you’re using and installs the Vagrant box
usage: netlab libvirt package [-h] [-v] [-q]
{arubacx,asav,csr,dellos10,eos,iosv,iosxr,nxos,routeros7,vptx,vsrx}
disk
Package a virtual machine into a libvirt Vagrant box
positional arguments:
{arubacx,asav,csr,dellos10,eos,iosv,iosxr,nxos,routeros7,vptx,vsrx}
Network device you want to create
disk Virtual machine disk (vmdk or qcow2)
options:
-h, --help show this help message and exit
-v, --verbose Verbose logging (add multiple flags for increased verbosity)
-q, --quiet Report only major errors
The Vagrant box name/version can be specified in three formats:
Just the version number (for example,
4.35.2F). netlab takes the default device box name, appends the specified version, and builds the box. You can start using the box immediately[1].Device name and version (for example,
ubuntu:26.04). netlab will prependnetlab/to the specified box name to prevent clashes with other boxes you might be using. You will have to specify the default box name you want to use for your devices or change it for a specific node with the node box attribute.Full box name (for example,
test/ubuntu:26.04).
Removing a Vagrant Box
The netlab libvirt remove command:
Finds a Vagrant box to remove based on the box name or device name
Uses vagrant command to remove the box from your Vagrant box directory
Uses virsh vol-delete command to remove libvirt volume created from the Vagrant box.
netlab libvirt remove -h
usage: netlab libvirt remove [-h] [--box BOX] [--version VERSION] [--cleanup]
[--pool POOL]
[{arubacx,asav,cat8000v,csr,cumulus,cumulus_nvue,dellos10,eos,fortios,frr,iosv,iosvl2,iosxr,linux,none,nxos,routeros,routeros7,sonic,vptx,vsrx,vyos}]
Remove a libvirt Vagrant box
positional arguments:
{arubacx,asav,cat8000v,csr,cumulus,cumulus_nvue,dellos10,eos,fortios,frr,iosv,iosvl2,iosxr,linux,none,nxos,routeros,routeros7,sonic,vptx,vsrx,vyos}
Remove a Vagrant box for the specified device
options:
-h, --help show this help message and exit
--box BOX Specify the Vagrant box you want to remove
--version VERSION Specify the version of the Vagrant box you want to remove
--cleanup Remove the volume(s) related to the specified Vagrant box
--pool POOL Specify the libvirt storage pool ('default' usually works)
Displaying Box-Building Recipe
Vagrant boxes are usually created from “unconfigured” VM disks supplied by device vendors. The netlab libvirt package command creates a VM from such a disk and expects you to stop the zero-touch provisioning (or a similar mechanism) and copy-paste the initial configuration to the virtual device.
The netlab libvirt config command displays the box-building recipe (they are also available as part of the box-building instructions)
% netlab libvirt config -h
usage: netlab libvirt config [-h]
{eos,dellos10,fortios,nxos,iosxr,arubacx,sonic,cat8000v,asav,vptx,vsrx,routeros7,csr,iosvl2,iosv}
Display Vagrant network device box configuration guidelines
positional arguments:
{eos,dellos10,fortios,nxos,iosxr,arubacx,sonic,cat8000v,asav,vptx,vsrx,routeros7,csr,iosvl2,iosv}
Network device you want to create
options:
-h, --help show this help message and exit