Starts August 25

Python Network Automation Course


Student Success

  • I decided to take Kirk's courses on Ansible and Nornir during the stay-at-home-orders in 2020 when COVID-19 hit the world. After the first few lessons I was able to write my first script to check for and add VLANs to our NX-OS environment.

    Stian Liebenberg
    Senior Wireless Engineer
  • I have taken several paid and non-paid Python courses. I can say that by far your course is the best one I have taken. The way you explained stuff just makes sense to me.

    Joli Martinez
    Automation Engineer
  • I am on the material for the 3rd week and I just wanted to compliment you on the way that you explained how to unwrap the data structures. Best step by step explanation I have seen so far to help me understand and work with the data. Thank you very much!

    Ray deGuzman
    Senior Network Engineer

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

Bonus1: Using a REST API (Plus and Premium Packages Only)

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

Bonus2: linting, pytest, and GitHub Actions (Premium Package Only)

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

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 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. No questions asked.

About Us

Kirk

Kirk Byers is the founder of Twin Bridges Technology–a business specializing in network automation training. He is the creator of the Netmiko Python library and also one of the maintainers of the NAPALM project. He teaches Python, Ansible, and Nornir courses for Network Engineers and writes about network automation. He is a long-time network engineer (CCIE #6243 emeritus), has extensive experience with *nix system administration, and is a Python programmer. He is interested in programming and networking and how to improve network engineering practices through automation.

Zack

Zack is a programmer extraordinaire. His language of choice is Python. He loves programming and is very big into games including: Magic the Gathering, Roblox, Dungeons & Dragons, and Terraforming Mars.

Jupiter

Jupiter is all dog. She loves to be near her people and loves her food (not necessarily in that order). She likes the water, the beach, chasing birds, and meeting new people. She is categorized as "an aggressive chew breed" and is living up to that category.


Starts August 25

Python Network Automation Course