Adventures in Network Automation
  • About
  • Posts

Posts

July 7, 2024

NetUK1 London 2024-07-09

On Tuesday, July 9th, 2024 I will be presenting a talk at NetUK1.

Blurb

Design-Driven Infrastructure Automation

Abstract

Building and managing Infrastructure has always been driven by architecture and design but surprisingly these concepts aren’t easy to integrate into the toolset that makes it possible to manage networks and infrastructure in general with automation.

In this presentation we’ll discuss how to manage a network with a Design first approach, based on Infrahub a new open-source Infrastructure management platform.

read more
November 6, 2023

NetDevOps Days New York City 2023-10-26

On Thursday, October 26th, 2023 I co-presented a talk at NetDevOps Days NYC along with Jerrod Gerth at Nokia.

Blurb

Test it first! Taking a DevOps approach to network labs.

Abstract

This joint talk from IP Fabric and Nokia will cover the “why” and “how” of building software-based network labs suitable for learning, testing, and validating changes. It will include discussion of:

  • Theory: Why are network labs needed? A discussion of network simulation options and the use cases it can solve
  • Real world: How to use Containerlab for network labs

Presentation

Presentation-as-code generated via marp and stored in GitLab: netdevops-days-2023-10

read more
August 27, 2023

NetDevOps Days London - YouTube Recording

On Friday, June 30th, 2023 I gave a talk at NetDevOps Days London on Explaining the business value of network automation - Or why I succeeded the second time around. The YouTube video recording is embedded below:

read more
August 27, 2023

Network Simulation is Hard (Part 2/2)

This post is part two of two, where I’ll cover how you can use network simulation and emulation tools to validate changes, and the limits of each approach. Please read the previous post covering network simulation concepts for further context before reading the rest of this post.

Ok, What Can Be Tested?

As a reminder, the goal is pre-change network validation. What are examples of things that a network engineer might want to test? Here’s a few of the most common scenarios:

read more
August 1, 2023

Network Simulation is Hard (Part 1/2)

Every few weeks I’m asked about why we1 can’t do pre-change network validation. Most network engineers don’t understand the nuances and details around this topic, and there’s very few words published on this, so it’s time for me to discuss what constitutes network simulation, network emulation, and what the challenges are around trying to validate network changes before they’re put in to production.

This is part one of two, where I’ll dive in to defining network simulation and some example tools. Then in the next post, I’ll cover how you can use these building blocks to validate changes, and the limits of each approach.

read more
July 29, 2023

Creating a Juniper vEX VM for Libvirt/vagrant

I needed to do some testing of Juniper Contrail API calls, and for that I could use some Juniper switches controlled by Contrail. As Juniper has recently launched a virtual vEX image, I figured I’d give it a go. Below are build instructions for creating a vagrant box for Juniper vEX.

Tools

  • Vagrant: Vagrant from Hashicorp. Vagrant is a tool for building and managing virtual machine environments in a single workflow.
  • vEX: The Juniper vEX VM images. Note I’m using a KVM (qcow2) image, and that a support login is required to download the images.

Workflow

  1. Download a qcow2 version of the Juniper vEX VM

I am using version 23.1R1.8 for this example. The filename I downloaded was named vjunos-switch-23.1R1.8.qcow2.

read more
June 26, 2023

NetDevOps Days London 2023-06-30

On Friday, June 30th, 2023 I’ll be giving a talk at NetDevOps Days London.

Blurb

Explaining the business value of network automation - Or why I succeeded the second time around.

Abstract

At a previous $dayjob I was brought on board a network engineering team to bring in some expertise in network automation. Along the way, I built a greenfield DC in the UK fully automated, just to watch manual config changes happen on day 2, and the code abandoned. I’ll discuss what I learned about making sure leaders are aligned on the business value of automation, and how I succeeded at the next major project, including why we chose Ansible and netbox as the core of the solution.

read more
January 6, 2022

Turning a Raspberry Pi into a Day/Night clock

One of my kids is an early riser. And for the last year, that meant we’re all early risers, regardless of if we’ve gotten enough sleep. So in an effort to have everyone well rested, I’ve put a small 3.5" TFT screen on an unused Raspberry Pi and coded up a simple HTML page, CSS stylesheet and javascript to display a fullscreen clock on boot. In addition, the background of the clock is green when it’s between 7am and 7pm, and red during the night. Coding was the easy part. Getting my child to pay attention to it is now the tough part!

read more
September 12, 2021

opengear - ansible role

I have created a simplified version of the Opengear ansible role I’m using in my production DC deployment. See link to the repo below. Opengear’s configuration is a mix of unix and it’s own internal database. To make matters more challenging, the Opengear config format is not really idempotent so you have to watch out when doing tasks like creating new users. So my hack is to essentially overwrite existing users every time I do an ansible playbook run. May this hack of a role help you figure out how to config your console servers more quickly.

read more
September 5, 2021

Creating a Juniper SRX VM for Libvirt/vagrant

I needed to replicate a Juniper SRX firewall to create and test a BGP config for a customer. I could have done this in GNS3/EVE-NG or some other virtual enviornment, but I find that Vagrant/Libvirt gives me the most usability when trying to reuse a setup over time, such as for automated testing.

So with that goal in mind, I needed to create a vagrant box of Juniper’s vSRX firewall, but specifically for use with libvirt. Multiple times I’ve drawn from Brad’s blog which has a great Juniper vMX example. So I’ll take a similar approach.

read more
  • ««
  • «
  • 1
  • 2
  • »
  • »»
© Adventures in Network Automation 2025