Build Virtual Lab Topology: VirtualBox Support

When I blogged about release 0.2 of my lab-building tool, Kristian Larsson was quick to reply: “now do vrnetlab”. You could guess what my reply was (hint: “submit a pull request”), but I did realize I’d have to add multi-provider support before that would make sense.

Release 0.3 adds support for multiple virtualization providers. You can run six different platforms on vagrant-libvirt (assuming you build the boxes), and I added rudimentary support for Vagrant provider for VirtualBox:

  • The framework to add new devices is in place if anyone feels like contributing corresponding Vagrantfile snippets.
  • The topology transformation modules deal with the infinite messiness of VirtualBox port forwarding and forward SSH, HTTP, and NETCONF ports.
  • Ansible inventory gets correct ansible_host ( and ansible_port (forwarded SSH port) values.


  • The only tested device is Cisco Nexus 9300v.
  • I was unable to get Arista vEOS to work on my Mac (macOS Catalina, Vagrant 2.2.14, VirtualBox 6.1.18).
  • The code to deal with forwarded NETCONF and HTTP ports in Ansible inventory is not there. Both of them are pretty convoluted to implement correctly, and I’ll only add them if there’s significant interest (or you could fix it yourself and submit a pull request).

Want to know more? Documentation is online, and the source code is on GitHub.

Add comment