Master Network Automation With Python For Network Engineers
Last updated 10/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 7.22 GB | Duration: 20h 9m
Last updated 10/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 7.22 GB | Duration: 20h 9m
Real-Life Hands-On Python and Ansible Automation: Netmiko, Paramiko, Napalm, Telnet, Ansible, Cisco, Arista, Linux etc
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 Multivendor Environment
Learn network programmability with Python, GNS3 and Ansible
Learn and apply advanced Python concepts like Multiprocessing and Multithreading 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 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 Multivendor 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 of DevOps Engineer
You will learn in-depth general Python Programming
Requirements
No prior Python knowledge is required. There is a general Python Programming section included.
Basic Knowledge of Networking Concepts (TCP/IP Stack, Cisco CCENT or CCNA Level)
A Linux, Mac or Windows Machine with an Internet Connection and at least 4GB of RAM
No paid software required. Only free software will be used: Python3, 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 the necessary setup information inside the course
Description
***Fully updated for 2022*** 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 2021 - Updates to be 2022 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 within 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 doubts 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've 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 devices configuration through a serial connection. Pyserial Python moduleImprovement of 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 Multivendor Environments.
Overview
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 Installing Python 3 on Windows
Lecture 10 Installing Python 3 on Linux and Mac
Lecture 11 Installing PyCharm IDE on Windows
Lecture 12 Installing PyCharm IDE on Linux and Mac
Lecture 13 Running Python Scripts using PyCharm
Lecture 14 Running Python Scripts using the Command Line
Lecture 15 Where do I get Cisco IOS, Juniper vSRX or Arista vEOS Images
Lecture 16 Just a few Words about Windows Installation
Lecture 17 Installing GNS3 on Windows 10
Lecture 18 Running Cisco IOU Images in GNS3 on Windows 10
Lecture 19 Connecting to Cisco IOU Images Running in GNS3 from Window 10
Lecture 20 Installing GNS3 and Running Cisco IOU on Linux
Lecture 21 What if it still doesn't work?
Section 3: Working with Text Files in Python
Lecture 22 Intro
Lecture 23 Opening and Reading Files
Lecture 24 Reading Files: Tell, Seek and Cursors
Lecture 25 The With Keyword
Lecture 26 Coding Exercise Solution
Lecture 27 Reading Files into a List
Lecture 28 Writing to Text Files
Lecture 29 Coding Exercise Solution
Lecture 30 Coding Exercise Solution
Lecture 31 Coding Section - Working with Text Files
Lecture 32 Reading CSV Files
Lecture 33 Writing CSV Files
Lecture 34 Using CSV Custom Delimiters
Lecture 35 Using CSV Dialects
Lecture 36 Coding Section - Working with CSV Files
Lecture 37 Assignment: File Processing
Lecture 38 Assignment Answer 1: File Processing
Lecture 39 Assignment Answer 2 (CSV Module): File Processing
Section 4: Hands-On Challenges - Working With Files
Lecture 40 Hands-On Challenges - Working With Text Files
Lecture 41 Hands-On Challenges - Working With CSV Files
Section 5: Data Serialization and Deserialization in Python (Pickle and JSON)
Lecture 42 Intro to Data Serialization
Lecture 43 Pickle Data Serialization and Deserialization
Lecture 44 Coding - Pickle
Lecture 45 JSON Data Serialization
Lecture 46 JSON Data Deserialization
Lecture 47 Coding - JSON
Lecture 48 Assignment: JSON and Requests/REST API
Lecture 49 Assignment Answer: JSON and Requests/REST API
Lecture 50 Coding Challenge: Simplify Serialization
Lecture 51 Coding Challenge Solution: Simplify Serialization
Lecture 52 Coding Challenge - JSON and Requests/REST API
Lecture 53 Coding Challenge Solution - JSON and Requests/REST API
Section 6: Network Automation with Paramiko (SSH)
Lecture 54 The Lab Environment
Lecture 55 Intro to Paramiko
Lecture 56 Extra: Enable SSH on Cisco Devices
Lecture 57 Connecting to Networking Devices using Paramiko
Lecture 58 Using **kwargs and Arguments Unpacking
Lecture 59 Running Commands on Cisco Devices
Lecture 60 Securing the Passwords Using getpass
Lecture 61 Automating the Configuration (OSPF) of Multiple Cisco Routers
Lecture 62 Running Commands on Linux - Method 1
Lecture 63 Running Commands on Linux as a Non-privileged User - Method 2
Lecture 64 Running Commands on Linux as root - Method 2
Lecture 65 Paramiko Refactoring. Creating myparamiko Module
Lecture 66 Running Commands Using myparamiko on Cisco IOS
Lecture 67 Importing myparamiko Module
Lecture 68 Backup the Configuration of a Single Cisco Device
Lecture 69 Automating the Backup Configuration of Multiple Cisco Devices
Lecture 70 Implementing Multithreading (Python and Paramiko)
Lecture 71 Assignment: Interactive User Creation on Linux with Paramiko
Lecture 72 Assignment Answer: Interactive User Creation on Linux with Paramiko
Lecture 73 Secure Copying Files with SCP and Paramiko from Python
Section 7: Hands-On Challenges - Network Automation with Paramiko
Lecture 74 Hands-On Challenges - Paramiko
Section 8: Network Automation with Netmiko (SSH)
Lecture 75 The Lab Environment
Lecture 76 Intro to Netmiko. Netmiko vs. Paramiko
Lecture 77 Connecting and Running a Command on a Networking Devices
Lecture 78 Netmiko Prompt. Enable & Global Config Mode
Lecture 79 Running Multiple Commands on a Networking Device
Lecture 80 Configuring a Networking Device from a File
Lecture 81 Configuring Multiple Networking Devices from Multiple Files
Lecture 82 Automating the Backup of Multiple Cisco Devices Using Netmiko
Lecture 83 Netmiko Without Multithreading
Lecture 84 Implementing Multithreading (Python and Netmiko
Lecture 85 Netmiko and Linux
Lecture 86 Troubleshooting Netmiko
Lecture 87 Preparing the Router for SCP
Lecture 88 Copy files to Networking Devices using SCP and Netmiko
Lecture 89 Assignment: Check Interface Status and Enable it if it's Disabled
Lecture 90 Assignment Answer: Check Interface Status and Enable it if it's Disabled
Section 9: Hands-On Challenges - Network Automation with Netmiko
Lecture 91 Hands-On Challenges - Netmiko
Section 10: Building Concurrent Applications Using Async IO
Lecture 92 Python Concurrency Ecosystem
Lecture 93 Implementing Async IO
Lecture 94 Coding - Implementing Async IO
Lecture 95 Building an Asynchronous Web Scraper
Lecture 96 Coding - Building an Async Web Scraper
Lecture 97 Running Shell Commands (Subprocesses) Asynchronously
Lecture 98 Coding - Running Shell Commands
Lecture 99 AsyncSSH: Asynchronous SSH
Lecture 100 AsyncSSH: Running Multiple Clients
Lecture 101 Coding - AsyncSSH (Multiple Clients)
Section 11: [Extra] - Running Arista vEOS and Juniper vSRX in GNS3
Lecture 102 How to Run Arista vEOS in GNS3
Lecture 103 How to Run Juniper vSRX in GNS3
Lecture 104 Juniper vSRX Basic Configuration
Lecture 105 Arista vEOS Basic Configuration
Lecture 106 Configure Arista EOS Switches
Lecture 107 Netmiko in a Multivendor Environment: Cisco & Arista Configuration
Section 12: Network Automation with Napalm
Lecture 108 Intro to Napalm
Lecture 109 Installing Napalm. Connecting to a Device
Lecture 110 Displaying Information
Lecture 111 Retrieving Information (facts, interfaces, arp table etc)
Lecture 112 Checking Connectivity Between Devices (napalm_ping)
Lecture 113 Configuration Management
Lecture 114 Merging Configurations
Lecture 115 Configuration Rollback
Section 13: Network Automation with Telnet
Lecture 116 Bytes Objects, Encoding and Decoding
Lecture 117 Telnet Protocol Basics. Configure and Connect to Cisco Devices
Lecture 118 Connecting to Network Devices with Telnet from Python
Lecture 119 Configuring Multiple Devices (Network Automation)
Lecture 120 Securing the Passwords Using getpass
Lecture 121 Telnet Enhancement (Refactoring) Using Object Oriented Programming
Lecture 122 Testing the Custom Telnet Class. Configure Loopback Interfaces and OSPF
Lecture 123 Configuring Multiple Devices Using the Custom Telnet Class
Lecture 124 Improving the Custom Telnet Class
Section 14: Hands-On Challenges - Network Automation with Telnet
Lecture 125 Hands-On Challenges - Telnet
Section 15: Network Automation Using Serial Connections
Lecture 126 Serial Communication Basics. Connecting to a Console Port
Lecture 127 Simulating a Serial Connection with Linux and GNS3
Lecture 128 Open a Serial Connection to a Device Console Port
Lecture 129 Configure Cisco Devices using Serial Connections
Lecture 130 Pyserial Refactoring. Creating Our Own myserial Module
Lecture 131 Module Enhancement. Initially Configuration of a Cisco Device
Lecture 132 Initial Configuration Automation From a File
Section 16: Useful Python Modules
Lecture 133 High-level File Operations: The Shutil Module
Lecture 134 Running System Commands: The Os Module
Lecture 135 Running System Commands: The Subprocess Module
Section 17: [Extra] - SSH Public Key Authentication (Cisco IOS & Linux)
Lecture 136 SSH Public Key Authentication Overview
Lecture 137 Generating SSH Key Pair on Windows
Lecture 138 What about MacOS?
Lecture 139 Generating SSH Key Pair on Linux
Lecture 140 Configuring SSH Public Key Authentication on Cisco IOS - Part 1 [Windows]
Lecture 141 Configuring SSH Public Key Authentication on Cisco IOS - Part 2 [Linux]
Lecture 142 Configuring SSH Public Key Authentication on Linux
Section 18: [Extra] - Ansible - Automate for Everyone
Lecture 143 About This Section
Lecture 144 What is Ansible
Lecture 145 Ansible Components
Lecture 146 Installing Ansible
Lecture 147 Inventory and ansible.cfg Files
Lecture 148 Intro to Ad-Hoc Commands
Lecture 149 Ad-Hoc Commands Part 1: command, shell, raw Modules
Lecture 150 Ad-Hoc Commands Part 2: setup, file, copy Modules
Lecture 151 Ad-Hoc Commands Part 3: apt and service Modules
Lecture 152 Ad-Hoc Commands Examples
Section 19: [Extra] - Ansible Playbooks
Lecture 153 YAML Files
Lecture 154 Ansible Resources
Lecture 155 Intro to Ansible Playbooks
Lecture 156 ios_command Modul
Lecture 157 Saving Output to a File
Lecture 158 network_cli vs local. Privileged Exec Commands in Playbooks
Lecture 159 Behavioral Inventory Parameters
Lecture 160 Behavioral Inventory Parameters in Playbooks and Inventory Files
Lecture 161 ios_config Module
Lecture 162 ios_config Module parents Argument
Lecture 163 Backup running-config Using ios_config Module
Lecture 164 Ansible Loops: Create Linux Users
Lecture 165 Arista eos_config Module
Lecture 166 Playbook with Multiple Plays for a Multivendor Topology (Cisco & Arista)
Lecture 167 Ansible Vault
Section 20: [Python Programming] - Python Basics
Lecture 168 Quick Note for Beginners
Lecture 169 Variables
Lecture 170 Constants
Lecture 171 Comments
Lecture 172 Dynamic vs. Static Typing
Lecture 173 Built-in Types
Lecture 174 Numbers and Math Operators
Lecture 175 Comparison and Identity Operators. Mutability vs. Immutability
Lecture 176 Boolean Variables
Lecture 177 Boolean Operators
Lecture 178 Coding - Python Basics
Section 21: [Python Programming] - Strings in Python
Lecture 179 Intro to Strings
Lecture 180 Get User Input
Lecture 181 Type Casting
Lecture 182 String Indexing and Operations
Lecture 183 String Slicing
Lecture 184 String Formatting (F-Strings)
Lecture 185 Recap - Printing Strings
Lecture 186 String Methods
Lecture 187 Coding - Strings in Python
Section 22: [Python Programming] - Program Flow Control
Lecture 188 If Elif and Else Statements
Lecture 189 For Loops
Lecture 190 Ranges In-depth
Lecture 191 For and Continue Statement
Lecture 192 For and Break Statement
Lecture 193 While Loops
Lecture 194 While and continue Statement
Lecture 195 While and break Statement
Lecture 196 Coding - Program Flow Control
Section 23: [Python Programming] - Lists and Tuples in Python
Lecture 197 Intro to Lists
Lecture 198 List Operations
Lecture 199 List Methods Part 1: Append, Extend, Insert, Copy
Lecture 200 List Methods Part 2: Clear, Pop, Index, Count
Lecture 201 List Methods Part 3: Sort, Max, Min and Sum
Lecture 202 Coding - Lists in Python
Lecture 203 Intro to Tuples
Lecture 204 Tuple Operations
Lecture 205 Tuple Methods
Lecture 206 Tuples vs. Lists
Lecture 207 Coding - Tuples in Python
Section 24: [Python Programming] - Sets, Frozensets and Dictionaries in Python
Lecture 208 Intro to Sets
Lecture 209 Set Methods Part 1: Add, Clear, Copy, Remove, Discard, Pop
Lecture 210 Set Methods Part 2: Difference, Symmetric Difference, Union, Intersection
Lecture 211 Fronzensets
Lecture 212 Coding - Sets and Frozensets in Python
Lecture 213 Intro to Dictionaries
Lecture 214 Working with Dictionaries
Lecture 215 Dictionary Operations and Methods
Lecture 216 Coding - Dictionaries in Python
Section 25: [Python Programming] - Functions in Python
Lecture 217 Intro to Functions
Lecture 218 The return Keyword
Lecture 219 Functions Arguments: Positional, Default, Keyword, *args and **kwargs
Lecture 220 Scopes and Namespaces
Lecture 221 Lambda Expressions
Lecture 222 Coding - Functions and Lambda Expressions in Python
Lecture 223 The Special Constant None
Section 26: [Python Programming] -Errors and Exception Handling
Lecture 224 Intro to Exceptions
Lecture 225 Exception Handling: Try…Except…Else…Finally
Lecture 226 Coding - Errors and Exception Handling
Section 27: [Python Programming] - Object Oriented Programming Basics
Lecture 227 Intro to Object Oriented Programming
Lecture 228 Defining Classes and Objects
Lecture 229 The __init__ Method
Lecture 230 Instance Attributes and Class Attributes
Lecture 231 Magic Methods
Section 28: Course Completion
Lecture 232 Congratulations
Lecture 233 BONUS
Network Engineers,Network Architects,SysAdmins,DevOps Engineers,Cisco Certified Professionals: CCNA, CCNP, CCIE,Anyone interested in Network Automation and Network Programmability with Python