Network Programming & Automation


This is our flagship course originally launched in early 2015. It was the industry’s first comprehensive network programmability and automation training course. Having taught the course dozens of times, it continues to be refined and optimized for the most optimal and relevant topics for a one-week boot camp for using Python and Ansible for Network Automation.

In this course, you will be immersed into using Python and Ansible covering many topics required for a jumpstart into network automation.

Note: This is a five (5) day course.


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 Network Libraries

Module 3 – A Deeper Look into RESTful (HTTP) APIs

Module 4 – Using Ansible for Network Automation


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.

  • Python Interpreter
  • Data Types
  • Conditionals
  • Loops
  • Writing Python Scripts
  • Functions
  • Working with Files
  • Passing Arguments from the Command Line
  • Working with Python Modules/Packages

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

Module 2 – Automating Network Devices with Network Libraries

This module starts with a very brief introduction into Regular Expressions and then a look into TextFSM for parsing raw text. We then move onto covering libraries such as netmiko and NAPALM.

  • Parsing raw text with TextFSM
  • Using netmiko to communicate to SSH-based devices
  • Declarative Network Configuration with the NAPALM Python Library

You’ll learn to work with Python libraries such as netmiko, napalm, and textfsm

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

Module 3 – A Deeper Look into RESTful (HTTP) APIs

This module takes a look at RESTful and more generic HTTP-Based APIs along with getting started with Postman helping the process of learning how to use any given web API.

  • RESTful and non-RESTful HTTP APIs
  • Arista eAPI
  • Cisco NX-API
  • Postman
  • Python requests

You’ll work with Postman in these labs and time permitting, get to use the Python requests library.

This module is on Day 3.

Module 4 – Using Ansible for Network Automation

At this point in the course, you’ll understand data types, encoding formats, and APIs, and how to write super useful Python scripts automating the network. In this module, you’ll build on that knowledge first learning all about YAML and see how Ansible can be used to even further simplify your life providing an even faster means of getting started with network automation. This module covers the use of Jinja2 within Ansible for configuration templates as well as 2.5 more days of just using Ansible for network automation.

  • Introduction to YAML
  • Ansible Overview
  • Terminology
  • Variable Management
  • Introduction to Jinja2 Templating
  • Device Templating with Jinja2 + Ansible
  • Declarative Configuration Management with NAPALM + Ansible
  • Deeper dive into Ansible (conditionals, iterators, register, variables, check mode, etc.)
  • Using Vendor Specific Modules (Cisco NXOS and Juniper Junos Ansible modules)
  • Ansible Core Modules for issuing show commands and making configuration changes
  • OS Management with Ansible and ntc-ansible (copying files, upgrades, reboots)
  • Roles – Creating Network Abstractions
  • Automating Data Gathering & Documentation
  • Dynamic Inventory Scripts

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


Major Points:

  • This is a five (5) day intense boot camp.
  • Class hours still start at 9am and run until about 5:00pm. Final day usually ends a few hours earlier.
  • This course will use a combination of the following device types: Cisco NX-OS, Cisco IOS, and Arista EOS.
  • Each student will have their own dedicated pod with at least 8 network devices
  • This was the industry’s first network automation boot camp.
  • 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 to an expertise level within a short period of intense focus.