Netmiko by Example Course

Course Starts September 14

Starter Package

  • Twelve Lessons including videos and exercises
  • Lab Environment

Plus Package

  • Twelve Lessons including videos and exercises
  • Bonus Lesson1 on Netmiko4 Features
  • Bonus Lesson2 on Netmiko4 Features
  • Lab Environment
  • Community Forum

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

Student Testimonials

I really like the hands-on nature of the course with a lab environment to create and test code. I have used Python and Netmiko at scale in my work, but it is always good to learn important details about the library especially from the developer himself.

—July 2021

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
  • Using send_command_timing()

CLASS3 - Parsers

  • The Parsing Problem
  • Textfsm, ntc-templates, and Netmiko
  • Genie
  • TTP

CLASS4 - Delay Factor and Multiline Prompting

  • delay_factor and global_delay_factor
  • Handling Prompts using an Expect String
  • Handling Prompts using send_command_timing()

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)

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

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

Bonus Lesson1 - Netmiko4 Features (Plus Package Only)

  • Netmiko4 Overview
  • send_command() and read_timeout
  • send_command_timing(), last_read, and read_timeout

Bonus Lesson2 - Netmiko4 Features (Plus Package Only)

  • send_multiline()
  • send_multiline_timing()
  • ConnLogOnly entry point

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


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. For the Plus Package, there are two additional bonus lessons covering Netmiko4 features and 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. Students that purchase the Plus 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 20-day money back guarantee (from the start of the course). No questions asked.

Kirk in Angwin Image

About Us:

Kirk Byers

Kirk Byers is the founder of Twin Bridges Technology–a small 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 at 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.

Netmiko by Example Course

Course starts September 14

Starter Package

  • Twelve Lessons including videos and exercises
  • Lab Environment

Plus Package

  • Twelve Lessons including videos and exercises
  • Bonus Lesson1 on Netmiko4 Features
  • Bonus Lesson2 on Netmiko4 Features
  • Community Forum
  • Lab Environment