Python Network Automation

Course Starts January 24

Sign-up now and receive a 10% discount!

(Discount ends: December 31)

Starter Package

  • Ten core lessons including videos and exercises

Plus Package

  • Ten core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on using a REST API

Premium Package

  • Ten core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on using a REST API
  • Bonus Lesson on pytest, tox, and Travis CI

If you are not happy with the course, there is a 30-day money back guarantee. No questions asked.

Student Quotes

(from an earlier course)

"the course was excellent and hugely enjoyable. It was learning Python focused, on using it to automate networking tasks, which made the course very relevant...I have recommended this and the beginner course to a number of colleagues and will continue to do so."

Course Syllabus

CLASS1 - Git, Netmiko (Part1)

  • Why Care about Git?
  • Git Fundamentals
  • Git Branches
  • Git Rebasing
  • Netmiko Overview
  • Netmiko Show Operations

CLASS2 - Netmiko (Part2)

  • Netmiko Handling Prompting
  • Netmiko Delay Factor
  • Netmiko and TextFSM
  • Netmiko Config Operations
  • Netmiko Secure Copy

CLASS3 - Complex Data Structures, YAML/JSON, CiscoConfParse

  • Handling Complex Data Structures
  • Changing Data Structure Format
  • Serialization Protocols
  • YAML
  • JSON
  • CiscoConfParse

CLASS4 - Libraries and TextFSM

  • Python Libraries and PIP
  • sys.path and PYTHONPATH
  • TextFSM Overview
  • TextFSM Template Structure
  • TextFSM Creating an Example Template
  • TextFSM Filldown

CLASS5 - Jinja2

  • Jinja2 Variables
  • Jinja2 Conditionals
  • Jinja2 Loops
  • Jinja2 and Lists
  • Jinja2 and Dictionaries
  • Jinja2 Filters
  • Jinja2 Includes

CLASS6 - Arista eAPI

  • Arista's eAPI Request-Response Structure
  • Creating Connections using pyeapi
  • Executing Show Commands using pyeapi
  • Device Configuration using pyeapi
  • Using the .api() method in pyeapi

CLASS7 - XML and NX-OS NX-API

  • XML
  • NX-OS NX-API using JSON-RPC
  • NX-OS NX-API using XML

CLASS8 - NETCONF and Juniper PyEZ

  • NETCONF
  • Juniper PyEZ

CLASS9 - NAPALM

  • NAPALM Intro and Getters
  • NAPALM Configuration Merge
  • NAPALM Configuration Replace
  • NAPALM and Configurating Templating

CLASS10 - SSH and Concurrency

  • Concurrency and Threads
  • Concurrency and Processes

Bonus Lesson - Using a REST API (Plus and Premium Packages Only)

  • REST API Introduction
  • REST API Characteristics
  • Accesing a REST API from the Browser
  • REST API using Requests (GET)
  • Creating and Modifying Objects Using a REST API

Bonus Lesson - pytest, tox, and Travis CI (Premium Package Only)

  • Python Linting and Black
  • Using pytest for Unit Tests
  • tox
  • Creating a CI/CD Pipeline using Travis CI

*Subject to change (although any changes should be minor).

**NetBox is used for the REST API examples, but the content is fundamentally about REST APIs and not NetBox.

FAQ

What is the format of the course?

The course is a ten week email-course. Each week you will receive a lesson that contains a set of videos, some additional content, and some exercises. I will post solutions to the exercises online. Both the Plus and the Premium Package have a community forum where you can ask questions, post code, and interact with me and with the other students.

Is there a lab environment?

Yes, the lab environment will consist of a set of virtual and physical network devices and at least one AWS-Linux server. I will install a set of libraries in the lab environment; this will enable you to get working quickly. From the lab environment you will be able to use Netmiko, Arista's eAPI, NAPALM, NX-API, and Juniper's PyEZ.

What are the prerequisites for the course?

You should be familiar with the basics of Python. You can be slow at writing Python code, but these ideas should not be new to you.

You also need to be familiar with basic network engineering (routing, switching, SNMP, Cisco CLI configuration).

Finally, since the lab environment will use Linux. You should be at least somewhat familiar with Linux. You should know the basics of how to move around the file system, execute a script, and edit a file.

Why Python?

Python facilitates writing clean, readable code and is natively present on Linux and MacOS. Python has gained widespread support in the networking community both from engineers and from vendors. Python has a large, active community and, consequently, numerous resources are available to you (libraries, documentation, books, tutorials, etc.).

What is the community forum?

The community forum is a web forum where students can interact, post code, ask questions, and make recommendations. Students that purchase either the Plus or the Premium Package will have access to the community forum for the duration of the course.

What if I am unsatisfied with the course after I sign-up?

If you are not satisfied with the course, there is a 30-day money back guarantee (from the start of the course). No questions asked.

Kirk Byers Image

About Me:

My name is Kirk Byers.

In the fall of 2010, I started on a journey to: 1)build a product business, 2)become a programmer, and 3)be a father (probably not the best idea to try all these things at once).

I am into Python, networking, and figuring out how to combine them to automate networking tasks.

I am a CCIE (emeritus) in routing and switching and have extensive Python experience. Since early 2014, I have been teaching Python to Network Engineers. Since that time, several thousand individuals have participated in my free Learning Python course.

In addition to teaching, I also created the Netmiko open-source library and am a major contributor to the NAPALM open-source project.

Yes, yes I get it...you are great and all that, but why should I learn Python from you?

I have spent numerous hours over the last eight years using Python, studying Python, and teaching Python. From this, I have gained a considerable amount of Python experience and knowledge.

I can help you apply Python to network engineering tasks too.

Python for Network Engineers

Python Network Automation

Course Starts January 24

Sign-up now and receive a 10% discount!

Starter Package

  • Ten core lessons including videos and exercises

Plus Package

  • Ten core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on using a REST API

Premium Package

  • Ten core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on using a REST API
  • Bonus Lesson on pytest, tox, and Travis CI