• Category : DevOps

 
 

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 →

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 →

Provisioning Cloud Vision Portal on AWS

Introduction This article demonstrates provisioning CloudVision Portal on AWS. With the release of CVP version 2018.x and upgrade of CVP platform to CentoOS 7.4, Cloud Vision Portal can be installed on CentOs servers with an RPM based script. This article specifically covers provisioning of CVP on the AWS EC2 Cloud platform. With CVP running on AWS users can easily manage AWS/OnPrem EOS instances from AWS and run analysis on CVP Telemetry/Compliance information with other AWS services and tools. Pre-Requisites 1) AWS account with appropriate privileges to create and access EC2 instances, DNS and NTP services. 2) Access to Arista.com Software...
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 →

vEOS-Lab on Hyper-V

Introduction There are multiple ways to setup a vEOS-Lab environment if you have a linux system or on hypervisors such as VMware ESXi, vCenter, VM Workstation, VM Fusion, Virtualbox, etc using the vmdk provided in the Software downloads page. But if you have a Windows machine or a Windows server, the vmdk will not be useful. So here are the steps on how you can convert the vmdk to a  vhdx and create a vEOS VM on Hyper-V. Pre-requisites 1. Hyper-V Manager and Hyper-V 2. vEOS-Lab vmdk 3. Aboot ISO  Instructions Steps 1. Download the vEOS vmdk for the EOS version...
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 →

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 →

Using dynamic Ansible inventories to manage CloudVision switches.

Ansible Dynamic libraries with CloudVision  The common question when talking with customers about CloudVision is are we able to also use a configuration management tool such as Ansible along with CloudVision?  You can use CVP and Ansible to both manage your Arista devices.  This is a guide to dynamically pull CloudVision for its devices and automatically have Ansible use those CVP managed devices.  Arista has supported Ansible EOS modules for quite some time and are still innovating on new modules in the latest version of Ansible which at the time of writing is 2.3.  Summary Dynamic inventories are setup in Ansible...
Continue reading →

Datacenter Deployment Automated

Planning Methodology There is a lot of talk about automation in the datacenter which indeed saves time but a lot of effort still goes into planning. After all, failing to plan is planning to fail. I needed a way to start automating some of the planning and repetitive tasks needed for deploying the same blueprint across various sites. One of the bigger tasks is the IP Plan and making sure that the correct IP’s get used in configurations. Additionally making sure that the same methodology gets used on different sites. Initially, I set out to use a very nice utility...
Continue reading →

Arista + Ansible – Getting Started

The Ansible 2.1 release made it easier than ever to manage Arista switches.  The following article describes how to leverage Ansible for EOS configuration management. The Basics If you’re brand new to Ansible, it might be helpful to take a spin through their Overview and Getting Started just to familiarize yourself with some of the basic concepts. The Ansible documentation has a great introduction to Ansible for Networking – definitely check it out before reading on. EOS Modules  Ansible modules do all of the heavy-lifting, and there’s a module to do just about anything you could possible think of, from copying a...
Continue reading →

Monitoring EOS with tcollector and OpenTSDB

EOS is a Linux distribution (based on Fedora), which means, among other things, that it can be monitored like any Linux server running Fedora.  In this post we show how to package a popular open-source monitoring framework, tcollector, as an EOS extension. A bit of history OpenTSDB is a distributed time series database used for infrastructure monitoring in many medium to large scale environments.  It uses a push model, meaning that OpenTSDB is not responsible for pulling monitoring from a set list of targets to monitor, rather the targets themselves are responsible for pushing their monitoring data to OpenTSDB, be...
Continue reading →

Arista + Ansible: A Dramatically Simple New Approach

On February 18th, 2016 Ansible (Red Hat) announced a new initiative to help bring years of systems administration experience to the network by creating a new set of modules built specifically for network devices.  This announcement signals a new direction for Ansible, a technology that previously omitted native support for the majority of network vendors.  What does this announcement mean and how can you get started with your Arista devices? A Brief History Astute readers may be wondering, “Why does this matter? I can already manage my Arista device with Ansible.” That’s true, but the announcement from Ansible changes the approach we...
Continue reading →

Ansible playbook for CVX and VXLAN configuration.

Purpose: This playbook allows an administrator to easily configure Cloud Vision Exchange (CVX)  and Virtual Extensible LAN (VXLAN) between two Arista switches. It is ideally suited for test environments and administrators wanting to test CVX and VXLAN functionality. The playbook can be modified for more advanced deployments. Running the playbook: From the cli under the /etc/ansible directory run: ansible-playbook cvx_vxlan_playbook.yaml Prerequisites: An Ansible server (http://docs.ansible.com/ansible/intro_installation.html) arista.eos roles for Ansible v1.0.1. To install run # sudo ansible-galaxy install arista.eos on the Ansible server. Rename the following files under /etc/ansible/roles/arista.eos/library to not have a .py extension i.e eos_config.py becomes eos_config.  # cp...
Continue reading →

Follow

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

Join other followers: