• Category : Automation

 
 

Network CI/CD Part 3 – Building a network CI pipeline with Gitlab, Ansible, cEOS, Robot Framework and Batfish

Previously on Network CI/CD… We’ve kicked off this series with an overview of cEOS-lab and different container orchestration tools that can be used for network simulations. In the second post we’ve seen how to automate network verification and testing with Arista’s Robot framework library. In this final post, we’ll put it all together to demonstrate a simple data centre network CI pipeline that will run through a sequence of stages to build and test every new configuration change. Introduction Let’s take a typical data centre leaf-spine network as an example and let’s assume that Leaf-1/2 and Spine-1/2 are already built...
Continue reading →

How to Automate MAC Address Lookups

Introduction MAC addresses are often overlooked, compared to higher layers of the OSI model, but they are a necessity in the transfer of data across the network. MAC addresses are unique in nature, with the vendor OUI portion of the MAC, and the client portion of the MAC. There are many reasons why locating a device is necessary, a few of them are: A device is causing adverse affects to the network and the port needs to be shutdown A port needs to be re-configured for a new device, but it is not known where the device is connected to...
Continue reading →

Robot Framework for Auto Test

Introduction In-house EOS code certification is generally a time consuming process as it involves a lengthy life cycle. At a high-level, the various stages involved are: Setting up the test environment Designing test cases Executing test cases Documenting test results Validating gathered test results As you can imagine, stages 3, 4 and 5 can be the most time consuming as they warrant an error-free execution. Additionally, since image and configuration management would be simplified, most customers would like to have a single EOS version deployed across all their platforms and networks. So certifying code at a brisk pace, on all platforms,...
Continue reading →

ZTPv6 using DHCPv6 Relay Agent

1. IntroductionZTP (v4/v6) is a simple hands-off approach to both initial set up and upgrading an existing network.  ZTP does not require entering into the switch CLI, speeds up and simplifies deployment, reduces the risk of human error, and can adapt to many deployment scenarios. It offers scripting extensibility for complex networks and flexible provisioning using standard tools.  Additionally, the switch can be ZTP booted using a variety of identifiers, such as its MAC address, serial number, or LLDP neighbors. Arista switch’s ZTP process starts with communicating to a DHCP(v4/v6) Server, where apart from getting the IP Address, Default Gateway,...
Continue reading →

Network CI/CD Part 2 – Automated Testing with Robot Framework library for Arista devices

Previously on Network CI/CD Part 1… We’ve established that lack of simulated test environments and automated test tools are among the inhibitors in a transition from a traditional network operation model to a DevOps workflow, where all changes are verified and tested prior to being deployed in production. We’ve seen how to solve the first problem with Arista’s cEOS-Lab docker container and a simple container orchestration tool. We’ve shown how the new containerised EOS allows us to dramatically increase the number of nodes we can deploy on a single host and decrease the total build and boot time compared to VM orchestration methods, e.g. the ones based on...
Continue reading →

Integrating Salt and Arista ZTP Server for Zero Touch Automation of EOS

Zero Touch Provisioning The term ZTP or Zero Touch Provisioning is a feature often heard, which EOS has offered since the early days. During the initial boot, if a startup-configuration file is not found in the /mnt/flash/startup-configuration directory, the EOS device will automatically boot into ZTP mode. The switch will obtain an IP address from a DHCP server including DHCP options 66 and 67. Next the switch will ask the ZTP server or a server designated within option 66/67  for a bootstrap file. In this post we will use the Arista ZTP server which can be found here.  This process is depicted in the following picture: The...
Continue reading →

Network CI/CD Part 1 – Building network topologies with Docker and cEOS-lab

Introduction As the networking industry continues riding the DevOps wave and network engineers become more comfortable using automation tools like Ansible and Salt, network still remains the most brittle piece of IT infrastructure. Partially this can be justified by the fact that network underpins all other areas of IT infrastructure stack – compute, storage and virtualisation. However we, as network engineers, have done very little to improve our confidence in networks and until now some of the biggest outages were caused by trivial network configuration mistakes. When software industry was facing similar challenges, the response was to create Continuous Integration (CI) pipelines –...
Continue reading →

EOS allows you to choose your own hardware and run your own apps

You’ve decided to go open source with your datacenter network. Whether you want to go open software or open hardware, Arista EOS provides the best software stack to complete your solution. In fact, I’ve been told that most of my daily web usage travels through a switch running EOS along the way. Arista’s EOS software architecture is designed to manage the best network silicon available for datacenters.  EOS is offered as a single binary across all Arista products, including 4 silicon architectures, over a dozen chipsets, as well as in hypervisor, container, and cloud-platform packaging. We have always supported the...
Continue reading →

Automating L3 EVPN instances deployment using CloudVision Portal

The intention of this article is to show how CloudVision Portal can be used to deploy L3 EVPN instances on one switch, or many switches, using a CloudVision Portal configlet builder. A complete demonstration of how CloudVision Portal is used to deploy an EVPN instance and EVPN fabric can be found here The configlet builder example provided on the GitHub Arista repo covers L3 EVPN deployments using physical interfaces as SVI as CE facing interface. The configlet builder example can be used on top of any EVPN underlay and overlay. Below is a step by step procedure which describes how to import...
Continue reading →

CloudVisionPortal – Open-VM-Tools

Open-VM-Tools is an open source add-on that allows for graceful startup & shutdown of Cloud Vision Portal. This allows for graceful startup and shutdown of CVP Virtual Machines with the ESXi manager. Further information and latest version can be found in the link belowhttps://github.com/vmware/open-vm-tools Note: The open-vm-tools package is only supported on Cloud Vision Portal. Open-vm-tools on Cloud Vision Exchange (CVX) or EOS vRouter is not supported at this time. Enabling Open-VM-ToolsStarting in CVP version 2017.2.3 the open-vm-tools package is available to be enabled on Cloud Vision Portal Instances. In order to enable the package: either SSH or login to the...
Continue reading →

Automating EVPN fabric deployment using CVP

To simplify and speed up the deployment of an EVPN fabric, CloudVision Portal can be a powerful tool to work with. The intention of this post is to divide this up into steps to simplify, qualify the actions steps needed and provide an example CloudVision Portal configlet builder to execute needed tasks in CloudVision. A complete demonstration of how CloudVision Portal is used to deploy an EVPN instance and EVPN fabric can be found here First of all, there needs to be a decision of which deployment model of EVPN underlay and overlay that suits the particular deployment being worked on....
Continue reading →

Automating L2 EVPN instances deployment using CloudVision Portal

The intention of this article is to show how CloudVision Portal can be used to deploy L2 EVPN instances on one switch, or many switches, using a CloudVision Portal configlet builder. A complete demonstration of how CloudVision Portal is used to deploy an EVPN instance and EVPN fabric can be found here The configlet builder example provided at GitHub Arista repo covers L2 EVPN deployments using MLAG, single interface, VLAN trunk, access VLAN, symmetric routing and asymmetric routing. The configlet builder example can be used on top of any EVPN underlay and overlay. Below is a step by step procedure is...
Continue reading →

Arista Salt integration

What is Salt? Salt is an event driven infrastructure management tool. It sounds really complex but it’s not. Salt is similar to most of the configuration tools that we use in our every day lives to configure infrastructure but there are many key differences in the way salt is architected. Salt is very unique as it has a ZeroMQ high speed messaging bus between the salt minions (in our case Arista switches) and a master which is typically a Linux server. Salt can be used to configure devices from multiple different template languages such as Jinja or YAML. Salt can...
Continue reading →

Docker containers on Arista EOS

Docker on EOS  In this article we will talk about what is a container, how it is applicable to Arista EOS switches and pulling containers from a public or private repot to run on a Arista physical or virtual device.  A docker container is simply a way to abstract and decouple an application from a linux(and now windows) operating system to run as a process on a host machine with the bare minimum requirements.   Docker makes creating cloud portable applications extremely easy.  So a application can be written from a mac laptop intended to be ran on a Ubuntu container...
Continue reading →

Creating A Multi-node vEOS Vagrant Enviroment

Introduction Beginning with EOS 4.15.2F, vEOS is available as a Vagrant box for VirtualBox. Vagrant is great whether you are simply getting started with vEOS or want to easily create a complex test environment.  With Vagrant, multiple VMs may be defined within a single ‘Vagrant file’, including non vEOS VMs allowing for an entire topology to be instantiated using a single file. For more info on Vagrant, check out their documentation.  This document will go through the details of how to use the predefined Vagrantfile shared below to instantiate a Spine&Leaf topology with vEOS. The topology that will be created is shown...
Continue reading →

Using eAPI to Provide SNMP Extensions

EOS utilizes net-snmp which offers provisions to extend OIDs.  The following script leverages eAPI to gather OSPFv3 interface information and populates the SNMP ospfv3IfTable. The OSPFV3-MIB can be downloaded from here: http://www.oidview.com/mibs/0/OSPFV3-MIB.html #!/usr/bin/python -u # # Arista Networks, Inc. # # Script: ospfv3IfTable.py v1.6 # # This script populates the ospfv3IfTable via a net-snmp extension # # 1. Copy this script to /mnt/flash as ospfv3IfTable.py # # 2. Copy snmp_passpersist to /mnt/flash # https://github.com/nagius/snmp_passpersist # # 3. Enable management api (script uses a unix socket) # management api http-commands # protocol unix-socket # no shutdown # # 4. Configure snmp to...
Continue reading →

Configure groups of interfaces based on description regex

A simple python eAPI script to find groups of interfaces to configure based on a regex match to interface descriptions. The most interesting part is that the script types out the “interface <list of matching interfaces>” command in an interactive manner as if the EOS CLI user typed it. The command is even saved in the command history. Give it a try!   1) Configure a command alias: alias intRegex bash sudo /mnt/flash/intRegex.py %1   2) Load the script in flash: #!/usr/bin/env python # # intRegex.py ver 1.12 # Arista Networks, Inc. import jsonrpclib, os, re, socket, sys, fcntl, termios...
Continue reading →

CloudVision Portal RESTful API Client

Arista Cloudvision® Portal (CVP) provides a central point of management for Arista network switches through shared snippets of configuration (configlets) enabling Network Engineers to provision the network more consistently and efficiently. While CVP highlights a graphical user interface for configuration and management of devices, it also includes a full-featured RESTful API that provides all of the same functionality available via the GUI which can be used to automate workflows and integrate with other tools. CVPRAC is a wrapper client for CVP’s RESTful APIs which greatly simplifies usage of the API and more elegantly handles the connections to the CVP nodes....
Continue reading →

CVP APIs: A Non-Programmer’s Guide

1. What are CVP APIs? Most CloudVision Portal (CVP) users are familiar with the web user interface (UI) that facilitates network provisioning, inventory management, tasks management, change control and so on.  CVP application programming interfaces (APIs) offer an alternative means of realizing the same functionality.  The key difference is that, with the CVP APIs, the functionality is realized over a programmatic interface (i.e typically by a piece of software communicating with another piece of software) rather than by a user navigating over a web page and clicking and/or typing.  Figure 1 shows a simplified example of these two methods of...
Continue reading →

Configure Linux or Microsoft DHCP Server for ZTP using CloudVision

Configure Linux or Microsoft DHCP for ZTP using CloudVision   Summary One of the many features CloudVision offers along with Configuration management, image management, Telemetry, and Change Management includes Zero Touch Provisioning (ZTP) and Zero Touch Replacement (ZTR). Users can either use the preinstalled DHCP server on the CloudVIsion server’s bash or use any other DHCP server like Microsoft Windows.   In this article, we will outline the steps required to get DHCP working on both the Linux and Microsoft platform as well as basic steps to provision a new switch, and replacement. All this can be done without the...
Continue reading →

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: