Adventures in Automation – Part 1

Today’s post is part of a series on how to develop an automation infrastructure in your environment. While there are a wealth of resources on how to setup an automation pipeline, to me it seems like there are missing pieces of the puzzle. This series will document how I build automation into my home network.

Goals

So what are the goals for this series? It comes down to a few major components:

  • A Domain-Specific Language (DSL)
  • A Configuration Generator
  • A Configuration Validator
  • A Continuous Integration and Continuous Deployment (CI/CD) Pipeline

By the end of this series, I aim to no longer have to login to a device to make a change. I will be experimenting with a bunch of different tools and services along the way, and seeing what works and what doesn’t work in my network. You’ll be able to see all the mistakes and pitfalls I make along the way, and hopefully you will be able to learn from them.

Network Environment

My network is a fairly simple one – one firewall, one switch, one wireless controller, and a development server. A diagram is shown below:

Current Network Diagram

As you can see, the Administrators must manually login to the CLI, Web UI, or Development servers directly to create new services, add network configurations, or make changes to network security. Because this network is simple, I should be able to quickly set up needed components, and adapt them to my needs.

This is a well-known “gotcha” when first starting automation; you won’t be able to complete full blown automation on your entire network in one fell swoop. Iterative improvements over smaller network segments will help you in your automation deployment. In my case, I’ll be focusing on the deployment of configurations on the switch and gateway devices. If there is time, and code examples, I’ll add in automation components to the wireless controller and development servers as well.

Stay tuned to this blog – as our first topic will be about Capirca, Google’s open-source multi-platform configuration generation system.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.