Master Network Automation with Python for Network Engineers

Real-life hands-on Python and Ansible automation: SSH, Paramiko, Netmiko, Napalm, Telnet, Ansible, Cisco, Linux etc
Master Network Automation with Python for Network Engineers
File Size :
7.69 GB
Total length :
22h 51m



Andrei Dumitrescu


Last update




Master Network Automation with Python for Network Engineers

What you’ll learn

You will MASTER all the Python 3 key concepts starting from scratch. No prior Python or programming knowledge is required.
Learn how to automate the configuration of networking devices with Python 3 in a multi-vendor environment.
Learn network programmability with Python, GNS3 and Ansible.
Learn and apply advanced Python concepts like Multiprocessing and Threading in Network Automation.
See real-world examples of automation scripts with Python for Cisco IOS, Arista EOS or Linux.
Understand how to use Telnet and SSH with Python for network automation.
Learn how to use and improve Paramiko and Netmiko for the automation of common administration tasks with Python.
Automate and troubleshoot network configurations with Ansible.
You will be able to use Ansible, manage Ansible inventory files, tasks, modules for Linux and networking devices, playbooks, vaults and YAML Files.
Use NAPALM Python library in a multi-vendor environment.
Learn how to configure networking devices with Python using a Serial Console Connection.
Improve the existing Python modules and create your own modules for network automation.
You will ultimately gain real-life skills for a good Network or DevOps Engineer.
You will learn general Python Programming in depth.

Master Network Automation with Python for Network Engineers


No prior Python knowledge is required. There is a general Python programming section included.
Basic knowledge of networking concepts (TCP/IP Stack, Cisco CCNA Level).
A Linux, Mac or Windows Machine with an Internet connection and at least 4 GB of RAM.
No paid software required. Only free software will be used: Python 3, PyCharm, GNS3, VirtualBox, Linux, etc.
Cisco IOS Images should be acquired by the student (from Cisco’s official website – contract required) to run into GNS3 or practice all the concepts on real Cisco devices.
Basic Knowledge of GNS3 and how to run Cisco Images, although I’ll provide you with the necessary setup information.


***Fully updated for 2023*** This Network Automation with Python course also covers every major general Python Programming topic and is a perfect match for both beginners and experienced developers!Course Updates:Update: November 2022- Updates to be 2023 readyUpdate: September 2020 – Manual Captions (Subtitles) in English addedUpdate: June 2020 – NEW Section: Async IO in Python (async/await, aiohttp, aiofiles, asyncssh)Update: May 2020 – Network Automation with Telnet re-recorded entirelyUpdate: April 2020 – Network Automation with Netmiko (SSH) re-recorded entirelyUpdate: March 2020 – Network Automation with Paramiko (SSH) re-recorded entirelyUpdate: April and May 2020 – Tens of NEW Coding Challenges with Solutions for real-world network automation tasksUpdate: October 2019 – NEW Section: Data Serialization and Deserialization in Python (Pickle, JSON, and REST APIs)Update: June 2019 – NEW Sections on General Python Programming: Strings, Lists, Tuples, Sets, Dictionaries, Functions, Flow Control, Working with Files, and many moreWelcome to this Python hands-on course for learning Network Automation and Programmability with Python in a Cisco or Multivendor Environment, taught by a DevOps Engineer and Professional Trainer.Boost your Python Network Programming Skills by learning one of the hottest topics in the Networking Industry in 2022 and become one of the best Network Engineers!This course is based on Python 3 and doesn’t require prior Python Programming knowledge. Everything is included in the course and you’ll also learn in-depth general Python Programming.Just starting out with Python Programming, Network Automation, or Network Programming using Python and have the desire to learn the future of Network Programmability in a practical way? Perfect. Then, this course is the right one for you. You’ll boost your career with hands-on Network Programming Skills!Or maybe you’ve already tried to learn Network Automation with Python by yourself and now you want to put all pieces together? I’m here to help you, this course has everything you need to know to automate network configurations with Python.Most examples in this course are for Cisco IOS, but they can also be used in a multivendor environment (Juniper, Arista, HP, Linux) with no or little changes. This is a vendor-neutral course and teaches you Python from scratch.You’ll have lifetime access and you can return and look for a specific Python library or example anytime you want. And let’s not forget, if you don’t like the course, you are covered by a 30-day money-back guarantee, full refund, no questions asked!You’ll have access to all Slides and Python Scripts (ready to be used) from this course.TESTIMONIALS★★★★★ “This course was much better than I expected. It’s high-quality Python Programming in the area of network automation and the instructor is really experienced. Thank you!” by Joseph Heinrich★★★★★ “Wow! This is an amazing course on network automation and python. It goes directly to the point. The Netmiko section is the best. I’m just waiting to test this at my work. Thank you!” by D. Schmidt★★★★★ “This is without doubt the best course on Network Automation with Python out there!” by Muhammad AliThere are many courses on Python Programming and Network Automation or Network Programming with Python. Why should you learn from me?I’m a Practitioner and an Enthusiast. Welcome to the real world! I have almost 20 years of experience as a Network Engineer and Programmer. Since I started with Networking, Linux Systems, and Programming, I’ve been using or studying technology almost on a daily basis. I also have a bunch of Cisco certifications: CCNP Routing & Switching, CCNP Security, CCNP Service Provider, Cisco Certified Instructor, etcI’m an Educator and I know how to make a Syllabus. For the last 10 years, I’ve trained thousands of people on Linux, Networking, Security, Ethical Hacking, or Programming.You’ll learn not only Network Automation but also general Python Programming. After this course, you’ll MASTER all the Python 3 key concepts.The topics covered in this Python Network Programming course are:Working with Files in Python (text, csv, json, yaml)Data Serialization and Deserialization (Pickle and JSON)Bytes and String Objects in Python 3. Encoding, DecodingAdvanced Python Concepts: Multiprocessing and Multithreading with real-life examplesThe standard Telnet Python Library. How to create your own Class based on telnetlib to simply the configuration automationParamiko Library. How to use SSH to automate the configuration of Cisco, Linux, or other DevicesHow to create your own Python module based on Paramiko to simplify the development workNetmiko. Automate the configuration of Cisco, Arista, and Linux using NetmikoNetmiko best practices and real-life examples for backup configuration of multiple devicesBuilding Concurrent Applications using Async IO (async/await, aiohttp, aiofiles, asyncssh)The NAPALM Library – Network Automation and Programmability Abstraction Layer with Multivendor supportHow to use NAPALM to retrieve information about devices and protocols and manage the devices’ configurationWhat is Ansible and what are its components: Modules, Tasks, Plays, Playbooks, etcHow to execute Ad-Hoc commands against networking devices and servers using AnsibleAnsible modules: command, shell, raw, copy, file, apt, service, ios_command, ios_config etcHow to use create and run Ansible Playbooks against Networking Devices (Cisco, Arista, etc) and Linux ServersAnsible VaultAutomation of networking device configuration through a serial connection. Pyserial Python moduleImprovement of the pyserial moduleHow to set up the Python Development Environment: PyCharm, GNS3, Cisco IOS, Arista vEOS, Juniper vSRXArista vEOS installation in GNS3 and basic configurationJuniper vSRX installation in GNS3 and basic configurationThe topics covered in the General Python Programming sections are:VariablesOperatorsBuilt-in TypesStrings in PythonLists in PythonTuples in PythonSets and Frozensets in PythonDictionaries in PythonFlow ControlUser-defined FunctionsErrors and Exception HandlingOOP (Object Oriented Programming)Every topic includes many live examples in Python. This course will show you the best practices for developing production-ready Python Networking Automation scripts for Cisco and multi-vendor environments.


Section 1: Course Introduction

Lecture 1 Why Network Automation with Python? Why Now?

Lecture 2 IMPORTANT. Please read!

Lecture 3 Quick inside. Course Overview

Lecture 4 IMPORTANT FOR BEGINNERS: How to Learn Python Programming

Lecture 5 Join Our Online Community!

Lecture 6 Getting Course Resources

Section 2: Setup the Environment: Python, PyCharm, GNS3, Cisco IOU and IOS

Lecture 7 A Quick Note

Lecture 8 Download and Install the Required Software

Lecture 9 Python Installation

Lecture 10 Installing Python 3 on Windows

Lecture 11 Installing Python 3 on Linux and Mac

Lecture 12 Installing PyCharm IDE on Windows

Lecture 13 Installing PyCharm IDE on Linux and Mac

Lecture 14 Running Python Scripts using PyCharm

Lecture 15 Running Python Scripts using the Command Line

Lecture 16 Where do I get Cisco IOS, Juniper vSRX or Arista vEOS Images

Lecture 17 Just a few Words about Windows Installation

Lecture 18 Installing GNS3 on Windows 10

Lecture 19 Running Cisco IOU Images in GNS3 on Windows 10

Lecture 20 Connecting to Cisco IOU Images Running in GNS3 from Window 10

Lecture 21 Installing GNS3 and Running Cisco IOU on Linux

Lecture 22 What if it still doesn’t work? This is the solution!

Section 3: Working with Text Files in Python

Lecture 23 Intro

Lecture 24 Opening and Reading Files

Lecture 25 Absolute and Relative Paths

Lecture 26 Reading Files: Tell, Seek and Cursors

Lecture 27 The with Statement

Lecture 28 Reading Files into a List

Lecture 29 Writing to Text Files

Lecture 30 Project: File Processing

Lecture 31 Reading CSV Files

Lecture 32 Writing CSV Files

Lecture 33 Using CSV Custom Delimiters

Lecture 34 Using CSV Dialects

Lecture 35 Coding Section – Working with CSV Files

Lecture 36 Assignment: File Processing

Lecture 37 Assignment Answer 1: File Processing

Lecture 38 Assignment Answer 2 (CSV Module): File Processing

Section 4: Hands-On Challenges – Working With Files

Lecture 39 Hands-On Challenges – Working With Text Files

Lecture 40 Hands-On Challenges – Working With CSV Files

Section 5: Data Serialization and Deserialization in Python (Pickle and JSON)

Lecture 41 Intro to Data Serialization

Lecture 42 Pickle Data Serialization and Deserialization

Lecture 43 Coding – Pickle

Lecture 44 JSON Data Serialization

Lecture 45 JSON Data Deserialization

Lecture 46 Coding – JSON

Lecture 47 Assignment: JSON and Requests/REST API

Lecture 48 Assignment Answer: JSON and Requests/REST API

Lecture 49 Coding Challenge: Simplify Serialization

Lecture 50 Coding Challenge Solution: Simplify Serialization

Lecture 51 Coding Challenge – JSON and Requests/REST API

Lecture 52 Coding Challenge Solution – JSON and Requests/REST API

Section 6: Network Automation with Paramiko (SSH)

Lecture 53 The Lab Environment

Lecture 54 Intro to Paramiko

Lecture 55 Extra: Enable SSH on Cisco Devices

Lecture 56 Connecting to Networking Devices using Paramiko

Lecture 57 Using **kwargs and Arguments Unpacking

Lecture 58 Running Commands on Cisco Devices

Lecture 59 Securing the Passwords Using getpass

Lecture 60 Automating the Configuration (OSPF) of Multiple Cisco Routers

Lecture 61 Running Commands on Linux – Method 1

Lecture 62 Running Commands on Linux as a Non-privileged User – Method 2

Lecture 63 Running Commands on Linux as root – Method 2

Lecture 64 Paramiko Refactoring. Creating myparamiko Module

Lecture 65 Running Commands Using myparamiko on Cisco IOS

Lecture 66 Importing myparamiko Module

Lecture 67 Backup the Configuration of a Single Cisco Device

Lecture 68 Automating the Backup Configuration of Multiple Cisco Devices

Lecture 69 Implementing Multithreading (Python and Paramiko)

Lecture 70 Assignment: Interactive User Creation on Linux with Paramiko

Lecture 71 Assignment Answer: Interactive User Creation on Linux with Paramiko

Lecture 72 Secure Copying Files with SCP and Paramiko from Python

Section 7: Hands-On Challenges – Network Automation with Paramiko

Lecture 73 Hands-On Challenges – Paramiko

Section 8: Network Automation with Netmiko (SSH)

Lecture 74 The Lab Environment

Lecture 75 Intro to Netmiko. Netmiko vs. Paramiko

Lecture 76 Connecting and Running a Command on a Networking Devices

Lecture 77 Netmiko Prompt. Enable & Global Config Mode

Lecture 78 Running Multiple Commands on a Networking Device

Lecture 79 Configuring a Networking Device from a File

Lecture 80 Configuring Multiple Networking Devices from Multiple Files

Lecture 81 Automating the Backup of Multiple Cisco Devices Using Netmiko

Lecture 82 Netmiko Without Multithreading

Lecture 83 Implementing Multithreading (Python and Netmiko

Lecture 84 Netmiko and Linux

Lecture 85 Troubleshooting Netmiko

Lecture 86 Preparing the Router for SCP

Lecture 87 Copy files to Networking Devices using SCP and Netmiko

Lecture 88 Assignment: Check Interface Status and Enable it if it’s Disabled

Lecture 89 Assignment Answer: Check Interface Status and Enable it if it’s Disabled

Section 9: Hands-On Challenges – Network Automation with Netmiko

Lecture 90 Hands-On Challenges – Netmiko

Section 10: Building Concurrent Applications Using Async IO

Lecture 91 Python Concurrency Ecosystem

Lecture 92 Implementing Async IO

Lecture 93 Coding – Implementing Async IO

Lecture 94 Building an Asynchronous Web Scraper

Lecture 95 Coding – Building an Async Web Scraper

Lecture 96 Running Shell Commands (Subprocesses) Asynchronously

Lecture 97 Coding – Running Shell Commands

Lecture 98 AsyncSSH: Asynchronous SSH

Lecture 99 AsyncSSH: Running Multiple Clients

Lecture 100 Coding – AsyncSSH (Multiple Clients)

Section 11: [Appendix] – Running Arista vEOS and Juniper vSRX in GNS3

Lecture 101 How to Run Arista vEOS in GNS3

Lecture 102 How to Run Juniper vSRX in GNS3

Lecture 103 Juniper vSRX Basic Configuration

Lecture 104 Arista vEOS Basic Configuration

Lecture 105 Configure Arista EOS Switches

Lecture 106 Netmiko in a Multivendor Environment: Cisco & Arista Configuration

Section 12: Network Automation with Napalm

Lecture 107 Intro to Napalm

Lecture 108 Installing Napalm. Connecting to a Device

Lecture 109 Displaying Information

Lecture 110 Retrieving Information (facts, interfaces, arp table etc)

Lecture 111 Checking Connectivity Between Devices (napalm_ping)

Lecture 112 Configuration Management

Lecture 113 Merging Configurations

Lecture 114 Configuration Rollback

Section 13: Network Automation with Telnet

Lecture 115 Bytes Objects, Encoding and Decoding

Lecture 116 Telnet Protocol Basics. Configure and Connect to Cisco Devices

Lecture 117 Connecting to Network Devices with Telnet from Python

Lecture 118 Configuring Multiple Devices (Network Automation)

Lecture 119 Securing the Passwords Using getpass

Lecture 120 Telnet Enhancement (Refactoring) Using Object Oriented Programming

Lecture 121 Testing the Custom Telnet Class. Configure Loopback Interfaces and OSPF

Lecture 122 Configuring Multiple Devices Using the Custom Telnet Class

Lecture 123 Improving the Custom Telnet Class

Section 14: Hands-On Challenges – Network Automation with Telnet

Lecture 124 Hands-On Challenges – Telnet

Section 15: Network Automation Using Serial Connections

Lecture 125 Serial Communication Basics. Connecting to a Console Port

Lecture 126 Simulating a Serial Connection with Linux and GNS3

Lecture 127 Open a Serial Connection to a Device Console Port

Lecture 128 Configure Cisco Devices using Serial Connections

Lecture 129 Pyserial Refactoring. Creating Our Own myserial Module

Lecture 130 Module Enhancement. Initially Configuration of a Cisco Device

Lecture 131 Initial Configuration Automation From a File

Section 16: [Appendix] Useful Python Modules

Lecture 132 System-specific Parameters and Functions: The Sys Module

Lecture 133 Script’s Arguments: sys.argv

Lecture 134 High-level File Operations: The Shutil Module

Lecture 135 Running System Commands: The Os Module

Lecture 136 Running System Commands: The Subprocess Module

Section 17: [Appendix] – SSH Public Key Authentication (Cisco IOS & Linux)

Lecture 137 SSH Public Key Authentication Overview

Lecture 138 Generating SSH Key Pair on Windows

Lecture 139 What about MacOS?

Lecture 140 Generating SSH Key Pair on Linux

Lecture 141 Configuring SSH Public Key Authentication on Cisco IOS – Part 1 [Windows]

Lecture 142 Configuring SSH Public Key Authentication on Cisco IOS – Part 2 [Linux]

Lecture 143 Configuring SSH Public Key Authentication on Linux

Section 18: [Appendix] – Ansible – Automate for Everyone

Lecture 144 About This Section

Lecture 145 What is Ansible

Lecture 146 Ansible Components

Lecture 147 Installing Ansible

Lecture 148 Inventory and ansible.cfg Files

Lecture 149 Intro to Ad-Hoc Commands

Lecture 150 Ad-Hoc Commands Part 1: command, shell, raw Modules

Lecture 151 Ad-Hoc Commands Part 2: setup, file, copy Modules

Lecture 152 Ad-Hoc Commands Part 3: apt and service Modules

Lecture 153 Ad-Hoc Commands Examples

Section 19: [Appendix] – Ansible Playbooks

Lecture 154 YAML Files

Lecture 155 Ansible Resources

Lecture 156 Intro to Ansible Playbooks

Lecture 157 ios_command Modul

Lecture 158 Saving Output to a File

Lecture 159 network_cli vs local. Privileged Exec Commands in Playbooks

Lecture 160 Behavioral Inventory Parameters

Lecture 161 Behavioral Inventory Parameters in Playbooks and Inventory Files

Lecture 162 ios_config Module

Lecture 163 ios_config Module parents Argument

Lecture 164 Backup running-config Using ios_config Module

Lecture 165 Ansible Loops: Create Linux Users

Lecture 166 Arista eos_config Module

Lecture 167 Playbook with Multiple Plays for a Multivendor Topology (Cisco & Arista)

Lecture 168 Ansible Vault

Section 20: [Python Programming] – Python Basics

Lecture 169 Quick Note for Beginners

Lecture 170 Python Installation

Lecture 171 Running Python Code in a Cloud IDE

Lecture 172 Variables

Lecture 173 Comments

Lecture 174 Constants

Lecture 175 Dynamic vs. Static Typing

Lecture 176 Built-in Types

Lecture 177 Numbers and Math Operators

Lecture 178 Assignment Operators

Lecture 179 Comparison Operators

Lecture 180 Identity Operators. Mutability vs. Immutability

Section 21: [Python Programming] – Strings in Python

Lecture 181 Intro to Strings

Lecture 182 Get User Input

Lecture 183 Converting Types

Lecture 184 String Indexing

Lecture 185 Concatenating and Repeating Strings

Lecture 186 String Slicing

Lecture 187 Formatting Strings: f-strings

Lecture 188 Intro to String Methods

Lecture 189 Useful String Methods

Section 22: [Python Programming] – Program Flow Control

Lecture 190 Conditional Statements

Lecture 191 Indentation

Lecture 192 Nested if/elif/else Statements

Lecture 193 Boolean Variables

Lecture 194 Logical (Boolean) Operators: AND and OR

Lecture 195 Logical (Boolean) Operators: NOT

Section 23: [Python Programming] Python Loops

Lecture 196 For Loops

Lecture 197 Debugging Your Code: Step Through Your Program

Lecture 198 Ranges

Lecture 199 Loops and Ranges

Lecture 200 For, continue and pass Statements

Lecture 201 For, else and break Statements

Lecture 202 While Loops

Lecture 203 While and continue Statements

Lecture 204 While and break Statements

Lecture 205 Walrus Operator

Section 24: [Python Programming] – Lists and Tuples in Python

Lecture 206 Intro to Lists

Lecture 207 List Concatenation, Append and Extend

Lecture 208 List Slicing and Iteration

Lecture 209 Python List Gotchas

Lecture 210 List Methods Part 1: Append, Extend, Insert, Copy, Clear, Pop, Remove

Lecture 211 List Methods Part 2: Clear, Pop, Index, Count

Lecture 212 String to List and List to String: Split and Join

Lecture 213 Project: Extract IPv4, IPv6 and MAC Addresses

Lecture 214 Intro to Tuples

Lecture 215 Tuple Operations

Lecture 216 Tuple Methods

Lecture 217 Tuples vs. Lists

Section 25: [Python Programming] – Sets, Frozensets and Dictionaries in Python

Lecture 218 Intro to Sets

Lecture 219 Set Methods Part 1: Add, Remove, Discard, Pop, Clear, Copy

Lecture 220 Set Methods Part 2: Union, Intersection, Difference, Symmetric Difference

Lecture 221 Fronzensets

Lecture 222 Intro to Dictionaries

Lecture 223 Working with Dictionaries

Lecture 224 Dictionary Operations and Methods – Part 1

Lecture 225 Dictionary Operations and Methods – Part 2

Lecture 226 Dictionary and Set Comprehensions

Section 26: [Python Programming] – Functions in Python

Lecture 227 Intro to Functions

Lecture 228 Positional and Keyword Arguments

Lecture 229 Default Argument

Lecture 230 The return Statement

Lecture 231 Variable-length Arguments: *args

Lecture 232 Variable-length Arguments: **kwargs

Lecture 233 Scopes and Namespaces

Lecture 234 One More Word about Scopes and Namespaces

Lecture 235 Lambda Expressions

Section 27: [Python Programming] -Errors and Exception Handling

Lecture 236 Intro to Exceptions

Lecture 237 Exceptions Handling: Try…Except…Else…Finally

Lecture 238 Built-in Exceptions and Best Practices

Lecture 239 Project: Test Network Connection

Section 28: [Python Programming] – Object Oriented Programming Basics

Lecture 240 Intro to Object Oriented Programming

Lecture 241 OOP Demonstration: The Turtle

Lecture 242 Defining Classes and Objects

Lecture 243 The __init__ Method

Lecture 244 Instance Attributes and Class Attributes

Lecture 245 Magic Methods

Section 29: Course Completion

Lecture 246 BONUS

Network Engineers,Network Architects,SysAdmins,DevOps Engineers,Cisco Certified Professionals: CCNA, CCNP, CCIE,Anyone interested in Network Automation and Network Programmability with Python

Course Information:

Udemy | English | 22h 51m | 7.69 GB
Created by: Andrei Dumitrescu

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top