Python Network Automation

Next Course Starts August 30

Starter Package

  • Nine core lessons including videos and exercises

Plus Package

  • Nine core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on XML & Juniper Automation

Premium Package

  • Nine core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on XML & Juniper Automation
  • Additional Exercises, Examples, and Solutions

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

"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 - Course Introduction, Git Basics, JSON/YAML Files, CiscoConfParse

  • Course introduction
  • Why Python? Python2 versus Python3
  • Working with Git
  • JSON and YAML data formats
  • Parsing Cisco configs with CiscoConfParse

CLASS2 - Telnetlib, SNMP, Managing Python Libraries

  • telnetlib basics
  • Python and SNMP
  • Managing Python libraries (basics)

CLASS3 - SNMPv3, Graphing, and Email Notifications

  • SNMPv3
  • Retrieving interface data using SNMPv3
  • Graphing SNMP data
  • Using Python to send email notifications

CLASS4 - Paramiko SSH, Pexpect, Netmiko

  • Connecting to network devices using Paramiko SSH
  • Pexpect basics
  • Network device management using Netmiko

CLASS5 - Arista's eAPI

  • eAPI introduction
  • JSON and eAPI Request Structure
  • Using eAPI from Python
  • Making configuration changes via eAPI

CLASS6 - Jinja2 Templating, NX-OS NX-API

  • Jinja2 Templating, Part1
  • Jinja2 Templating, Part2
  • NX-OS NX-API

CLASS7 - NAPALM

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

CLASS8 - Integrating to a Database, SSH and Concurrency

  • Using Django's ORM
  • Basic CRUD
  • Primary and foreign Keys
  • SSH and concurrency

CLASS9 - Writing Reusable Code

  • Writing reusable code
  • Functions
  • Classes
  • Modules and Packages

Bonus Lesson - XML & Juniper Automation (Plus and Premium Packages only)

  • XML Basics
  • Traversing XML, XPath
  • XML Conversion to Python Data Structures
  • PyEZ Basics
  • PyEZ Load and Commit
  • PyEZ and Custom RPC Requests

Bonus Lesson - Additional Exercises, Examples, and Solutions (Premium Package only)

Subject to change (although any changes should be minor)

FAQ

What is the format of the course?

The course is a nine-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 Paramiko SSH, Netmiko, Arista's eAPI, NAPALM, NX-API, and PySNMP.

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 on general Python resources. 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 six 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

Next Course Starts August 30

Starter Package

  • Nine core lessons including videos and exercises

Plus Package

  • Nine core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on Juniper Automation

Premium Package

  • Nine core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on Juniper Automation
  • Additional Exercises, Examples, and Solutions