Tired of mind-numbing, carpal-tunnel inducing VLAN changes...

You have read the headlines. You have been reassured and reassured that you don't need to be a programmer—that you just need to think like a programmer (whatever that means).

You look around and see that the server team is leaving you in the dust. They have Puppet and Ansible. They rapidly create and provision VMs; they work closely with the Dev-team on Vagrant and Jenkins. You have...you have a bunch of manual VLAN changes that you need to complete. You aren't keeping pace; you CAN'T keep pace.

You have late-night change windows and ACLs (those #$@&%*! ACLs). You need to reconfigure trunks, add VLANs to switches, and configure two-dozen switch ports. You were forced to ditch VTP because a consultant declared it was unsafe—God forbid you do anything automatically unless there is zero-risk. Oh, and the last network admin was a control-freak who decided to explicitly enumerate all of the allowed VLANs on all of the trunks.

You are spiraling down into manual change hell!

But this is NOT what you want...

You don't want to spend all day configuring switchports. You don't want to spend weeks determining which ACL lines you can remove. You don't want to manually configure trunks, VLANs, switchports.

You want to break out of this all-manual mode of operation. You want to go from slow, time-consuming, strapped-together-with-duct-tape to rapid, robust, automatic.

You want to push changes programmatically. You want to generate configurations dynamically from templates. You want a system that is integrated and revision controlled. You want to treat your infrastructure as code.

But what skills do you need to accomplish this? What do you need to know to make this happen?

I hate to break the news to you...but you need to learn to program.

Now I am not saying you need to be Linus Torvalds or Guido van Rossum. You don't need to spend all day, every day, picking up a new language and learning complex skills, but you do need to be able to communicate to network devices programmatically. You need to be able to use APIs. You need to be able to glue parts of your system and workflow together. You need to learn how to how to write and maintain reusable code.

But how do you get there...

How do you learn the skills to start automating tasks in your environment? How do you start building a templated configuration system? How do you gather information from your network devices programmatically? How do you start creating an integrated and automated workflow?

This course can help.

You will learn skills that make you better at network automation and that improve your capability to use programming to scale your work.

Student Quotes

"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."

"I thought this was a great class. I found it searching for information on writing Ansible modules for network devices so it came at the right time with the right content—I wanted to improve my Python skills and start working on my own modules."

Python for Network Engineers

Network Automation using Python and Ansible

Next Course Starts March 30

Sign-up now and receive a 10% discount!

Basic Package

  • Nine core lessons including videos and exercises

Plus Package

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

Cert Package

  • Nine core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on NAPALM
  • Bonus Lesson on Juniper
  • Certification of Completion (see FAQ)
  • Cert package limited to first four students

P.S. you will also receive my Learning Python video series once you sign-up.

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

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 Certification Packages will also 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 Ansible, Paramiko SSH, Netmiko, Arista's eAPI, and PySNMP. Additionally, the Plus and Certification Packages will be able to use Juniper's PyEZ library and Juniper-Ansible modules.

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, 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 including posting code, asking questions, code review, and recommendations on general Python resources. Both the Plus and Certification Packages will provide you with access to the community forum for the duration of the course.

What is the Certification of Completion?

For those students participating in the certification package, you will be required to complete all of the exercises on your own. Your code will be reviewed and verified to reasonably accomplish the exercises. I will provide feedback on your code including ways you can improve it. The code you write must be meaningfully different from any course reference code. The certification package enrollment is limited to a maximum of four students (first-come, first-served).

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.

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 - Ansible (Part1)

  • Ansible introduction
  • YAML and Ansible terminology
  • Ansible and configuration templating
  • Ansible roles

CLASS6 - Ansible (Part2)

  • More complex configuration templating
  • Loading configuration files using POAP and ZTP
  • Configuring Arista switches with Ansible
  • Using Cisco IOS and Ansible for secure file transfer

CLASS7 - Arista's eAPI

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

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 - Juniper Automation (Plus & Cert Packages only)

  • PyEZ basics
  • PyEZ load and commit
  • Juniper and Ansible

Bonus Lesson - NAPALM (Plus & Cert Packages only)

  • NAPALM Overview
  • Get Operations
  • Config Management Operations

Subject to change (although any changes should be minor)

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 my work on teaching Python to network engineers, I also have spent considerable time working on a cloud-based network automation application (Last Hop Automation) and on an open-source library to simplify network automation using SSH (Netmiko).

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, teaching Python and 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

Network Automation using Python and Ansible

Next Course Starts March 30

Sign-up now and receive a 10% discount!

Basic Package

  • Nine core lessons including videos and exercises

Plus Package

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

Cert Package

  • Nine core lessons including videos and exercises
  • Community Forum
  • Bonus Lesson on NAPALM
  • Bonus Lesson on Juniper
  • Certification of Completion (see FAQ)
  • Cert package limited to first four students