Hands-On Network Automation Workshop

ipSpace.net » Workshops » Hands-On Network Automation

Whenever you hear about someone using network automation in a production network it’s usually a startup or large web property (Netflix, Spotify, Twitter, Facebook...). While some ISPs used automatic service deployment for decades, it seems nothing’s going on in the enterprise networks. This workshop will show you how wrong that notion is.

We’ll start with easy tasks like generating network device configurations using Ansible instead of Excel spreadsheets, and you’ll see that you don’t have to be a programmer or speak fluent Python to get the job done.

We’ll also explore what the vendors already offer us: most of the data center vendors provide Puppet or Chef agents on their boxes, and you can use them to solve one of the most mundane networking challenges: configuring VLANs on server-facing ports.

Moving to slightly trickier topics, we’ll discuss collecting network configurations with RANCID, storing them in Git, and automating the deployment of our configurations while still retaining full control and sanity checks with tools like Gerrit and Jenkins.

Finally, we’ll tackle a troubleshooting challenge: find a device with known MAC address hiding somewhere within a large network.


  • Hands-On Network Automation is a 2 days intensive instructor-led workshop occasionally offered by a select group of training providers.
  • Contact us for more details or if you want to have a customized on-site workshop for a closed group of up to 20 attendees

Topics Covered

The first part of the workshop covers these topics:

  • Introduction to network automation
  • Overview of network automation tools

The second (hands-on) part covers automated configuration deployment with YAML, Jinja2 and Ansible.

Introduction to Network Automation

  • What is network automation and why would you use it
  • Abstraction of network state
  • Automated provisioning
  • Automated remediation
  • How can I get started?
  • Network automation caveats

Network Automation Tools

  • Configuration and state management tools: Puppet and Chef
  • Automation frameworks: Ansible
  • Version control tools
  • Workflow- and reviewing tools
  • Continuous integration tools

Automated Configuration Deployments

  • Building an network state data model
  • Expressing the data model in YAML
  • Generate device configurations from YAML data model and Jinja2 templates
  • Simple network automation with Ansible
  • Ansible playbooks and facts
  • Building and deploying device configurations with Ansible

Target audience

Network engineers who want to start honing their network automation skills without throwing away everything they learned in the last decades just because everyone-should-be-a-programmer is the latest fad. You might be a network architect, or an engineer deploying or troubleshooting networks - understanding what network automation can do for you and how it works will never hurt you.

Finally, you might be a programmer looking for new challenges, in which case a healthy mix of programming skills and arcane networking knowledge might be exactly what you’re looking for. Welcome to a new frontier!


You might want to know a bit about how networks work. We’ll use DMVPN, OSPF, BGP and LLDP throughout the workshop, but don’t get scared - we’ll never go deeper than saying "this is our use case, and here are the things we have to push down to the device to make it all work"

What you should bring with you

You could be perfectly happy to just watch the demos, in which case bring a large bag of curiosity. If you want to get your hands dirty, make sure to install Python, Virtual Box and Ansible on your laptop (or on a VM running on your laptop).


After attending this workshop you’ll be able to:

  • Identify network automation opportunities in your environment
  • Select the tools to use in a network automation project
  • Avoid typical network automation pitfalls

You’ll also learn how to:

  • Generate a data model describing desired network state
  • Create a set of YAML files for that data model
  • Create configuration templates with Jinja2
  • Generate and deploy network device configurations with Ansible.

About the Author

Ivan PepelnjakIvan Pepelnjak (CCIE#1354 Emeritus) has been analyzing OpenFlow technology and SDN ideas (and being pretty vocal about their shortcomings) since March 2011, resulting in a number of high-impact events, on-site SDN workshops for large enterprises and service providers, and vendor-sponsored webinars.

Ivan is the author of several SDN-related books, highly praised webinars, and dozens of OpenFlow and SDN-related technical articles published on his blog.

More about Ivan Pepelnjak