Starting in Nov

Netmiko By Example Course

Student Success

  • I highly recommend both courses (Ansible and Netmiko) for those looking to learn more about network automation. Kirk Byers does a great job at explaining the content, provides the lab resources required to perform the course material, and is good at responding to questions on his Slack Channel.

    Andrew Turner
  • 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: Installation and Basic Connections

  • Netmiko Installation
  • Simple Connection
  • Using the Session Log
  • Connect using a Dictionary
  • Connect using a Context Manager
  • Determining the Device Type

Class2: Logging and Show Command Basics

  • Logging
  • Connecting to Multiple Devices using a For-Loop
  • Executing Show Commands (basics)
  • Using send_command() with an expect_string
  • send_command() and read_timeout

Class3: Send Command Timing and Parsers

  • send_command_timing(), last_read, and read_timeout
  • The Parsing Problem
  • Textfsm, ntc-templates, and Netmiko
  • Genie
  • TTP

Class4: Handling Prompts

  • Handling Prompts using an Expect String
  • Handling Prompts using send_command_timing()
  • send_multiline_timing()
  • send_multiline()

Class5: Configuration Changes

  • Making Configuration Changes using send_config_set()
  • send_config_from_file()
  • Configuration and Handling Special Prompts
  • cmd_verify and global_cmd_verify

Class6: SSH Keys, Agent, and Proxying

  • Using SSH Keys
  • SSH Keys and a Passphrase
  • Using an SSH Agent
  • Connecting via a Jump Host

Class7: Connection Failures, Timeouts, and Retries

  • Timeouts
  • Timeouts and Exceptions
  • Retrying Authentication Failures
  • Handling Connection Exceptions (Example)
  • ConnLogOnly Entry Point

Class8: Concurrency

  • Concurrency versus Parallelism
  • Threads
  • Multiple Processes

Class9: Secure Copy

  • Secure Copy Overview
  • file_transfer() Function
  • MD5 Verification
  • Put
  • Get
  • Progress Bar
  • Inline Transfer and Cisco IOS)

Class10: Autodetect, Telnet, and write_channel/read_channel

  • SSH Autodetection
  • SNMP Autodetection
  • Netmiko and Telnet
  • write_channel() and read_channel()

Class11: Terminal Servers and Redispatch

  • Connecting to a Terminal Server
  • Logging in to the End-Device
  • Redispatch

Class12: Other Methods

  • global_delay_factor and fast_cli
  • enable()
  • config_mode() and exit_config_mode()
  • commit()


What is the format of the course?

This course is a twelve lesson, six-week email course. The lessons are sent every Tuesday and Thursday. The lessons contain videos, exercises, and additional content. We have posted solutions to the exercises online. There also is a community forum where you can ask questions, post code, and interact with 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. We will install a set of libraries in the lab environment; this will enable you to get working quickly. The lab environment will have a mixture of vendors and platforms (Cisco IOS/IOS-XE, Cisco NX-OS, Juniper, and Arista).

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

What is Netmiko and why should I care?

Netmiko is a Python library that simplifies automating legacy devices using SSH. Netmiko supports a very broad-set of networking platforms and also enables the use of fairly simple code patterns for automation.

What is the community forum?

The community forum is a forum where students can interact, post code, ask questions, and make recommendations.

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 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 is a programmer extraordinaire. His language of choice is Python. He loves programming and is very big into games including: Magic the Gathering, Brawl Stars, Scythe, and Terraforming Mars.


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.

Starting in Nov

Netmiko By Example Course