Building a network configuration

Even though there are a lot of resources on rendering and building network configurations, I was missing content that describes the pattern that I have been using for some time now. This post outlines the pattern I have been using and provides a toy example where that pattern is implemented.... [Read More]


GoSNMP is a very fun package to play with and learn about Go. It is easy to use and it can be made into doing something usefull quickly. The examples in the repo are clear and SNMP offers a fun way to play with channels and retrieving information from devices.... [Read More]
Tags: go automation

Working with JSON in Go

A little while ago, I decided to start learning Go. One of the things that I wanted to start out with was learning how to work with JSON. Coming from Python, the first thing I noticed was that working with JSON in Go is a bit more involved. [Read More]
Tags: go automation

Schedule the boring stuff with Python

The schedule module describes itself as ‘Python job scheduling for humans’. It is a nice package that I use for infrastructure related tasks and activities. The package (currently) prides itself for the following: A simple to use API for scheduling jobs. Very lightweight and no external dependencies. Excellent test coverage.... [Read More]


In the search for a framework that would allow me to plug my automations without too much fuss, I came across Nornir. I have been enjoying it so much that I decided to do write down an introduction for others. My hope is that this post will allow others to... [Read More]


Google TextFSM is a Python module that is written to make parsing text easier. It is a convenient way to turn CLI output into structured data. This blog covers a TextFSM example and shares the way in which I have been using TextFSM lately. [Read More]

Scrapli in SaltStack

Recently, I have been looking into a Python library called scrapli. You can use it for screen scraping and what led me to checking out this package is the fact that it is easy to tap into ssh2-python. This can offer quite some benefits in terms of speed and CPU... [Read More]

BFD protected LAG

A LAG combines multiple physical links between two adjacent nodes together to establish a single (virtual) link. This offers increased bandwidth, link efficiency and physical redundancy. [Read More]
Tags: juniper

SaltStack overview

Diving into SaltStack for the first time can be difficult and confusing. There is a lot of terminology involved that is going to be new. This makes it difficult to get a clear overview of how everything is working together and how the different parts might be useful to you.... [Read More]


Recently, I have been exploring NAPALM in relation to NX-OS. To connect to the device, I used the nxos driver which uses the NXAPI. This write-up contains some of the basic operations. I am using NAPALM version 2.5.0 and the NX-OS device is a Nexus7700 running 8.0(1). [Read More]

SaltStack proxy minion troubleshooting

Last week, I was doing some troubleshooting in a lab when I noticed one of the proxy minions refused to go into configure mode. The approach I took when I was troubleshooting this was a very general one that works for all proxy minion types. For this reason, I thought... [Read More]

parallelize Python programs using deco

During my first struggles with threading and multiprocessing, a colleague told me about deco. This package enables you to parallelize a simple function in a very easy way, making it run significantly faster. The package author Alex Sherman puts it like this: [Read More]

SaltStack pillar data and map files.

Right when I was starting out with SaltStack, I learned about the pillar. The pillar is an interface designed to offer values that the master distributes to (proxy) minions. Many of the examples floating around aim to show you how to use this pillar interface. This is mostly done by... [Read More]

Arista configure session

To configure an Arista, you can jump in configuration mode and start firing off your configuration commands one after the other and have the changes take effect immediately. Quite a few people that I have spoken with, people that have been working with Arista’s for several years, took this approach... [Read More]


Up until this point in my career, most of my scripting efforts involved PyEZ, Paramiko and Netmiko. But after having to work with multiple vendors inside SaltStack, I started looking into NAPALM. This post is a short summary of what I have learned so far about NAPALM in general. [Read More]

6VPE between Juniper MX and Cisco IOS XR

In this post, we will enable an existing MPLS L3VPN for IPv6 using 6VPE. We will extend the cust-1 VPN in the topology we used during my last post, MPLS L3VPN between Juniper MX and Cisco IOS XR, and enable 6VPE across Cisco IOS XR and MX routers to connect... [Read More]

Exploring the Arista eAPI using pyeapi.

The Arista EOS command API, or eAPI, has been maturing ever since EOS 4.12. Recently, I started to look into ways to use this API for information retrieval. In this article, I am sharing what I learned exploring the eAPI using a library called pyeapi. [Read More]