So why do I want to install an Arista vEOS? Well, this is like saying “why should I buy a fully loaded Mercedez Benz S Class coupe, or a Telsa S model over a Nissan Sentra (calm down, I drove a Sentra for almost 5 years!).
At the end of the day, we usually pay more for an item because it comes with more bells & whistles, better quality, or it could be your buying a brand name Coach glasses over the CVS brand. I’d rather eat a steak over at Smith & Wollensky over on 49th and 3rd over Applebees anyway. Now that steak will be a helluva lot more — but the quality speaks for itself. You get the point, right :)
We all know there’s are other vendors out there other than Cisco. Like cars, (as you can tell, I love using the car analogies), each car manufacturer has its own style of making cars. Arista offers a feature that other vendors don’t, and that’s leaving its main OS — EOS (their version of IOS or NX-OS) and falling into the bash shell and poking around the switches inner guts. More interesting enough, Python scripts.
***update: the Cisco Nexus 9k now offers users to drop into the bash shell as well!***
[wzambrano@Arista-vEOS CliPlugin]$ pwd /usr/lib/python2.7/site-packages/CliPlugin [wzambrano@Arista-vEOS CliPlugin]$ ls AaaCli.py EbraShowTechCli.pyc LagIntfCli.pyc PeerIntfCli.pyc SendCli.pyc AaaCli.pyc EbraSnmpCli.py LagIntfMlagCli.py PfcCli.py SessionCli.py AaaModel.py EbraSnmpCli.pyc LagIntfMlagCli.pyc PfcCli.pyc SessionCli.pyc AaaModel.pyc EmailCli.py LagIntfModel.py PhyCli.py SflowCli.py AclCli.py EmailCli.pyc LagIntfModel.pyc PhyCli.pyc SflowCli.pyc
The output above is a small spinet of the Python scripts one can see and modify. You could even make your own in here! (im not there yet though!)
[wzambrano@Arista-vEOS CliPlugin]$ vi MacAddr.py # Copyright (c) 2006 Arista Networks, Inc. All rights reserved. # Arista Networks, Inc. Confidential and Proprietary. import CliParser, Ethernet, Arnet #------------------------------------------------------------------------------- # Rule for matching MAC addresses. The value of this rule is the MAC address # string as typed by the administrator. #------------------------------------------------------------------------------- macAddr = CliParser.PatternRule( Ethernet.macAddrPattern, name='macAddr', helpname='H.H.H', helpdesc='MAC address' ) def compareMacs( lhs, rhs ): '''Convert Mac address strings to Arnet.EthAddrs for comparison. Mac address strings can be in the form of either (mixed, or homogenous) XX.XX.XX or X:X:X:X:X:X''' if lhs == None or rhs == None: return False mac1 = Arnet.EthAddr( lhs ) mac2 = Arnet.EthAddr( rhs ) return mac1 == mac2
This is a brief script — just one example of the many python scripts that you could mess with!
OK enough of the intro, let’s jump into the config.
First, you’ll need two files (unlike IOS in GNS3, where we just need a .bin file) a boot iso file and the vmdk file. You can go to Arista’s website and sign up with an account and download these files. As of this writing, I downloaded the latest…
Note you can also look on Arista’s page for instructions on how to install the vEOS here
Great, now lets fire up Workstation and create a New virtual Machine. On this screen, pick I will install the OS later.
Hit Next until we get the Guest OS Screen — here select Fedora 64-bit. In the virtual machine name, choose whatever you’d like (default is Fedora 64-bit X, you can name it vEOS or the like).
Click next to get to the Network Connection. Here is a personal preference on how you’d like to access your gear. Since I just wanted to access it via my own personal network, I selected bridged networking. You could also set it up as host-only, or NAT, its up to you how you’d like to access it.
Next, we’ll for the control type, you can select the default LSI Logic and then we need to pick IDE disk type (will not work with SATA as per the documentation).
Next on the Select a Disk, this where we’ll finally use one of our two files. Here, pick “use an existing virtual disk” and pick the .vmdk file. You might get a message staying to Convert or Keep the Existing format. I found that it wouldn’t work for me until I clicked Convert.
Finally, once we get to the “Ready to Create” page, click Customized Hardware.
Here, all we need to do next is go to the CD/DVD drive and use the last file we had (the .iso) and make sure the Connect at Power On is selected. Optionally you can remove other things here like printer or sound card.
Thats it! Hit Power on and when you see “booting flash:/file_name.swi” we’re clear. The default credentials here are “admin” with blank password (just hit enter). Setup an IP address on the mgmt1 interface so you can SSH to the box instead of being confined to the console window (you’ll need to setup a username XXX secret XXX priv 15 account).
Finally to get into the good stuff, once logged hit, simply type #bash from the privileged level. Linux users rejoice! CD to the python path to start looking at the python scripts via /usr/lib/python2.7/site-packages/CliPlugin Type “exit” to exit out of bash and go back to the EOS.