Master Network Automation With Python For Network Engineers
Last updated 2/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 7.69 GB | Duration: 22h 51m
Last updated 2/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 7.69 GB | Duration: 22h 51m
Real-life hands-on Python and Ansible automation: SSH, Paramiko, Netmiko, Napalm, Telnet, Ansible, Cisco, 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 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.
Requirements
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.
Description
***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.
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 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