Network Automation Bootcamp


We’ve taught our flagship Network Programming & Automation course dozens of times and students continue to want more—they want more time, more examples, and an understanding of more technologies to fully comprehend what’s possible with not only network automation, but the integration of DevOps and Continuous Integration (CI) technologies with network operations.  This is the outcome—it is the industry’s first boot camp for network automation—it is intense and instructor-led.

In this course, you will be immersed into network programming and automation covering every major topic you need to be aware of as you get started on you network automation journey.

Note: This is a nine (9) day bootcamp.  It starts on Monday and ends the following Tuesday (working through the weekend).


While there are no programming, software/dev, or automation prerequisites, students should have:

  • Good grasp on networking concepts such as device configuration of interfaces, VLAN, OSPF, and BGP.
  • Basic understanding of using a Linux terminal.
  • Aware of how to use a text editor: SublimeText, nano, vi/vim, notepad++


Course Summary

Module 1 – Getting Started with Python

Module 2 – Automating Network Devices with SSH, NETCONF, and RESTful APIs

Module 3 – Generating Standard Configurations using Jinja2 Templates

Module 4 – Parsing Raw Text and Show Commands

Module 5 – Using NAPALM for Network Automation

Module 6 – Getting a Jump Start with Network Automation with Ansible


Course Outline

Module 1 – Getting Started with Python

Assuming ZERO background in Python, we cover the basics from data types and nested objects to functions and writing complete Python scripts in the complete context of networking.

This module is Day 1.

Module 2 – Automating Network Devices with SSH, NETCONF, and RESTful APIs

We’ll start by reviewing data encoding formats such as XML/JSON, go into APIs, while providing an introduction to YANG.  You’ll then take what you’ve learned in Day 1 and start to build scripts to automate real (virtual) network devices using a traditional protocol such as SSH as well as a modern network APIs such as NETCONF and RESTCONF, and traditional RESTful APIs.

You’ll learn to work with Python libraries such as paramiko, netmiko, ncclient, and requests.

This module starts on Day 2 and finishes on Day 3.

Module 3 – Generating Configurations using Jinja2 Templates

We’ll start by reviewing how JSON is related to YAML and start to model device configurations in YAML files.  You’ll then learn how Jinja2 can be used to simplify creating standard and golden configuration templates.  Finally, you’ll create Python scripts that auto-generate and deploy configurations directly from data files and templates.

You’ll work with Python modules such as yaml and jinja2.

This module starts on Day 3 and finishes on Day 4.

Module 4 – Parsing Raw Text and Show Commands

While we’re in a time and place in networking that devices now have APIs, the truth is that most network devices actually in production still only have SSH.  This module is focused on retrieving command output from network devices and then explores ways to parse that data.  You’ll learn to work with Regular Expressions in Python while also learning to use a Python library called TextFSM for a more structured way of parsing semi-formatted text.

You’ll work with Python modules such as re, textfsm, and clitable.

This module starts and stops on Day 4.

Module 5 – Using NAPALM for Network Automation

In this module, we’re solely focused on NAPALM, a Python library that automates network devices in a vendor neutral fashion—we cover both configuration management building on what we learned previously with Jinja2 and YAML as well as how NAPALM is used to retrieve configurations and operational state data from network devices. It’s critical to understand NAPALM as there are NAPALM integrations with tools such as Ansible, Salt (not covered in this course), and StackStorm.

This module is Day 5.

Module 6 – Getting a Jump Start with Network Automation with Ansible

At this point in the course, you’ll understand data types, encoding formats, APIs, YAML, and Jinja2, and how to write super useful Python scripts automating the network.  In this module, you’ll build on that knowledge and see how Ansible can be used to even further simplify your lives and providing an even faster means of getting started with network automation.

This module is three full days dedicated to using Ansible.  This a mini intense bootcamp in its own right.  This covers everything you need to know to get started with Ansible for network automation including coverage using Ansible AWX/Tower.

This module is Days 6, 7, and 8.

Module 7 – Using Git/GitHub with CI/CD

This module begins with a look at culture, and what’s required for automation, but then introduces Git/GitHub with a close look at how version control is used in a larger CI/CD pipeline using Ansible, Jenkins, and GitHub.  Hands-On with Git/GitHub in this module.



Major Points:

  • This is a nine (9) day intense boot camp.
  • Class hours still start at 9am and can run well past 5:30pm.  Final day ends by 2pm.
  • This course will use a combination of the following device types: Cisco NX-OS, Cisco IOS, Arista EOS, Juniper Junos.
  • Each student will have their own dedicated pod with at least 10 network devices
  • Private boot camps available upon request.
  • This course has over 50% hands-on labs
  • The course is not for the faint of heart. In other words, you have to be passionate about learning network automation and have the desire or need to skill up a few levels within a short period of time.
  • This is the industry’s first network automation boot camp.