Create a VirtualBox Arista vEOS image from the command line
I’ve wanted to check out Arista EOS for a while, but didn’t have access to the hardware. I recently learned that Arista had made EOS available as a virtual machine. Arista call this vEOS. By installing the free VirtualBox hypervisor I could get vEOS running on my MacBook. It sounded a bit too easy, but to be fair the process is really well documented.
Before I go further I should say that I obtained my copy of vEOS from my local Arista SE. I don’t know of any formal way to get a copy but I’d be very surprised if Arista couldn’t provide one through your local sales team (read, don’t ask me to supply a copy). Once I obtained the bootloader iso and veos.vmdk image files I was ready to go.
I used this blog post from Gary A. Donahue to guide me through the process. This really is an excellent and detailed tutorial. Gary does a great job here and guides you through the setup of an Ubuntu management server. The addition of the Ubuntu box is a nice touch and gives you a holistic view of a real network. I added LLDP to Ubuntu to help troubleshooting an issue of a badly mapped NIC.
sudo apt-get install lldpd # install the LLDP daemon lldpctl # The equivalent to 'show lldp neighbors' (hopefully shows an EOS box!)
You need to create a new VM for each vEOS based switch in your topology, and you interconnect them by placing the vNICs from different VMs on common VirtualBox LAN segments. I’m not a VmWare user and this was my first time using VirtualBox, so I loved the simplicity of the GUI. The recommended VM memory allocation is 1G of RAM, so I took the precaution of upgrading my MacBook’s 4GB of RAM to 8GB. This cost me the princely sum of $65 on Amazon.com.
But cloning VMS and adding different NICS to different segments manually can be a little error prone. With a quick bit of digging I found that I already had access to the virtualbox commands from the shell on my Macbook. With the help of the interwebs I gleaned enough information to build a new vEOS VM from the command line.
The code sample below doesn’t replicate Gary’s full lab, but provides you the commands to create a single vEOS router named RTR1, with a single NIC. Once you enter these at the shell, the RTR1 image should appear in your VirtualBox left-hand menu.
vboxmanage createvm --name RTR1 --ostype Fedora_64 --register VBoxManage modifyvm RTR1 --memory 1024 VBoxManage modifyvm RTR1 --nic1 intnet VBoxManage modifyvm RTR1 --intnet1 Mgmt1 VBoxManage modifyvm RTR1 --nicpromisc1 allow-vms VBoxManage modifyvm RTR1 --cableconnected1 on VBoxManage storagectl RTR1 --name "IDE Controller" --add ide VBoxManage storageattach RTR1 --storagectl "IDE Controller" --port 0 --device 0\ --type hdd --medium /Users/sherpa/VirtualBox/vEOS.vmdk VBoxManage storageattach RTR1 --storagectl "IDE Controller" --port 1 --device 0\ --type dvddrive --medium /Users/sherpa/VirtualBox/Aboot-veos-virtualbox.iso
I intend to use this snippet a basis for templated VM creation and perhaps package up some common lab topologies. I’m enjoying the experience so far. I hope this was a useful nugget. Please let me know what you think in the comments section.
5 thoughts on “Create a VirtualBox Arista vEOS image from the command line”
I could find the images in here: https://eos.aristanetworks.com/2012/11/veos-and-virtualbox/
Well, you need an account with priviledges higher than guest 🙁
Sorry NC, I haven’t quite figured out the ‘official’ way of getting these images. Thanks for the comments though.