An Introduction to the Golang eAPI

Introduction Since the release of Arista EOS Command API (eAPI) many have grown to appreciate its stability and easy-to-use syntax which allow applications or scripts complete programmatic control over EOS. Development of applications that interface with your Arista device for the purpose of configuration or monitoring is simple and fairly straight forward. With a little knowledge of Python, Perl, Ruby, or your favorite language of choice, and familiarity with the underlying transport mechanism (JSON-RPC), it’s easy to write some custom functionality to help with deployments, provisioning, configurations and many other things.  Arista has continued its ongoing effort to make life...
Continue reading →

Introducing the Python Client for eAPI (pyeapi)

The Arista EOS command API (eAPI) has been available in versions of EOS since the release of version 4.12.  It has proven to be an invaluable tool for building management plane applications, making it easy to develop solutions that interface with the device configuration and state information.  Building on the capabilities of eAPI, this article introduces the initial release of the Python Client for eAPI (pyeapi). The Python Client for eAPI (pyeapi) is a language specific client to make working eAPI even easier.  It is designed to assist network engineers, operators and devops teams to build eAPI applications faster without...
Continue reading →

ZTPServer v1.1.0

ZTPServer 1.1.0 is a significant update for ZTPServer and all users are strongly encouraged to update. This release is primarily focused on resiliency, improved testing, and closing early requests from several deployments. Important: The default system identifier has changed in this release from System MAC Address to Serial Number. This can be reverted to the old behavior in /etc/ztpserver/ztpserver.conf, to allow existing configurations to be used. Documentation: Release Notes: License: Support:

Introducing Arista EOS Roles for Ansible

This article introduces the newly released Arista EOS role for Ansible.  The Arista EOS role provides a set of Ansible modules that can used in playbooks for automating the configuration of network resources contained in Arista EOS nodes.  The EOS role replaces the existing arista_* modules that are currently available in the Ansible distribution.  The base code that comprises the EOS role has been re-worked from the beginning, influenced by lessons learned from the first generation modules.   In addition, the EOS role now takes advantage of Ansible Galaxy to provide a streamlined distribution mechanism to make getting started with...
Continue reading →

Programmatically update your routing table

Overview This article describes a script which is designed to allow the insertion/removal of a route in/from the routing table. If you want a way to remotely add/delete routes to/from your routing table, then this is the tool for you – using it will make insertion/removal of static routes as easy as running a script on any remote device that supports Python. How to get the code: Download the code Use your Github account and fork it (remember to contribute back) Installation The script (updateRoute) can be run/installed on any device that runs Python 2.7 or later. In order to run updateRoute, first...
Continue reading →

Dynamically update your interface name via port auto-description

Overview: Port auto-description will dynamically update the port description based on the LLDP information received from the neighbour. As always we are looking for your feedback please let us know if you have ideas on how to improve this script or other ideas… The tool: The script, called ‘portAuto’, will dynamically change the port description based on the neighbour’s LLDP information. This could be used as a stand alone script or part of a larger toolset. How to get the code: Get the code directly from Github forks.2 open issues.Recent commits: Update, GitHub Add unix socket support, Philip DiLeo Update...
Continue reading →

Decoding UTC from the timestamps on 7150 Series

Overview Arista 7150 Series allows packets going through the switch to be timestamped using a 31-bit high-resolution (350Mhz) tick counter which rolls over every ~6.135seconds (every tick corresponds to ~2.857ns). In order to enable UTC-recovery, the switch can be configured to send a special type of packets called keyframes, which contain the mapping between the hardware counter and UTC time. More details about the exact format of the keyframes can be found here. Decoding PCAP captures The PCAPDecoder script can be used in order to recover UTC for a packet capture generated using tcpdump or a similar tool. The capture...
Continue reading →