Building an Arista EOS Vagrant Libvirt Box
Arista EOS is supported by the netlab libvirt package command. To build an Arista EOS box:
Create an empty directory on a Ubuntu machine with libvirt and Vagrant.
Download vEOS disk image (.qcow2 file) into that directory (Arista no longer provides downloadable Vagrant boxes).
Tip
Use the eos-downloader
Python package to simplify vEOS image download. See the eos-downloader documentation for more details.
Execute netlab libvirt package eos virtual-disk-file-name and follow the instructions
Warning
If you’re using a netlab release older than 1.8.2, or if you’re using a Linux distribution other than Ubuntu, please read the box-building caveats first.
Initial Device Configuration
During the box-building process (inspired by the step-by-step instructions by Brad Searle) you’ll have to copy-paste initial device configuration. netlab libvirt config eos command displays the build recipe:
Creating initial configuration for Arista EOS
=============================================
* Wait for the 'login' prompt
* Login as 'admin' (no password)
* Disable zero-touch with 'zerotouch disable'
===============
*** WARNING ***
===============
Disabling zero-touch (which will also cause a device reboot) is crucial. With
zero-touch enabled, the Vagrant box will acquire an IP address on the management
interface, but never start SSH, resulting in a stuck "vagrant up" process.
After the system reboot
* Login as 'admin'
* Go into enable mode, enter configuration mode
* Copy-paste the following configuration
NOTE: the management traffic is isolated in a dedicated management VRF (management).
=============================================
aaa authorization exec default local
!
no aaa root
!
service routing protocols model multi-agent
!
vrf instance management
!
username vagrant privilege 15 secret sha512 $6$3kgdKcJLJ3j/0N51$a0YshIzKL3xtdwP6XXXRlY9B8yHFK/tLdg0I95YUIaW7oHqLsgK9TxMg8/0bL6VDkImuWT.g7WRKTxi8nNPtA1
username vagrant ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
!
interface Management1
vrf management
ip address dhcp
dhcp client accept default-route
!
no ip routing
no ip routing vrf management
!
security pki key generate rsa 2048 default
security pki certificate generate self-signed default key default param common-name Arista
!
management api http-commands
no shutdown
!
vrf management
no shutdown
!
management api netconf
transport ssh default
!
management api restconf
transport https default
ssl profile default
port 6040
!
management security
ssl profile default
certificate default key default
!
management ssh
vrf management
no shutdown
!
no user vagrant shell
!
end
=============================================
* Save the configuration with 'wr mem'
* Poweroff the VM with 'bash sudo poweroff'
* If the device starts reloading instead of shutting down, disconnect
from the console (ctrl-] usually works).