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, and so on). While some ISPs used automatic service deployment for decades, it seems nothing’s going on in the enterprise networks. This 2-day Hands-On Network Automation (HNA) with Ivan Pepelnjak 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.

More: Check out the test cases and scenarios for Network Automation workshop at Ivan Pepelnjak's GitHub

The workshop was developed by Ivan Pepelnjak
Ivan 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, including chairing the technical roundtable of first-ever OpenFlow symposium in Silicon Valley in September 2011, various presentations and workshops at Interop, Troopers, RIPE and other regional ISP meetings, on-site SDN workshops for large enterprises and service providers, and vendor-sponsored webinars for NEC (describing their ProgrammableFlow solutions and SDN/OpenFlow in general), VMware (the first technical webinar describing VMware NSX after its launch in August 2013) and Nuage Networks (scalability challenges of overlay virtual networks).
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.


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


The workshop consists of the following components:
  • Introduction to Network Automation
    • What is network automation and why would you use it
    • Abstraction of network state
    • Automated provisioning
    • Automated remediation
    • CLI, API or NETCONF?
    • 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

Test cases and scenarios for the workshop are available at Ivan Pepelnjak's GitHub

Prerequisite Knowledge

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).