Master Network Automation with Python for Network Engineers

Master Network Automation with Python for Network Engineers

English | MP4 | AVC 1280Ă—720 | AAC 44KHz 2ch | 18 Hours | 7.54 GB

Real-Life Hands-On Python and Ansible Automation: Netmiko, Paramiko, Napalm, Telnet, Ansible, Cisco, Arista, Linux etc

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!

Welcome 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 2020 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.

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, Decoding
  • Advanced Python Concepts: Multiprocessing and Multithreading with real-life examples
  • The standard Telnet Python Library. How to create your own Class based on telnetlib to simply the configuration automation
  • Paramiko Library. How to use SSH to automate the configuration of Cisco, Linux, or other Devices
  • How to create your own Python module based on Paramiko to simplify the development work
  • Netmiko. Automate the configuration of Cisco, Arista, and Linux using Netmiko
  • Netmiko best-practices and real-life examples for backup configuration of multiple devices
  • Building Concurrent Applications using Async IO (async/await, aiohttp, aiofiles, asyncssh)
  • The NAPALM Library – Network Automation and Programmability Abstraction Layer with Multivendor support
  • How to use NAPALM to retrieve information about devices and protocols and manage the devices’ configuration
  • What is Ansible and what are its components: Modules, Tasks, Plays, Playbooks, etc
  • How to execute Ad-Hoc commands against networking devices and servers using Ansible
  • Ansible modules: command, shell, raw, copy, file, apt, service, ios_command, ios_config etc
  • How to use create and run Ansible Playbooks against Networking Devices (Cisco, Arista, etc) and Linux Servers
    Ansible Vault
  • Automation of networking devices configuration through a serial connection. Pyserial Python module
  • Improvement of pyserial module
  • How to set up the Python Development Environment: PyCharm, GNS3, Cisco IOS, Arista vEOS, Juniper vSRX
  • Arista vEOS installation in GNS3 and basic configuration
  • Juniper vSRX installation in GNS3 and basic configuration

The topics covered in the General Python Programming sections are:

  • Variables
  • Operators
  • Built-in Types
  • Strings in Python
  • Lists in Python
  • Tuples in Python
  • Sets and Frozensets in Python
  • Dictionaries in Python
  • Flow Control
  • User-defined Functions
  • Errors and Exception Handling
  • OOP (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.

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
Table of Contents

Course Introduction
1 Why Network Automation with Python Why Now
2 Quick inside. Course Overview

Setup the Environment Python, PyCharm, GNS3, Cisco IOU and IOS
3 A Quick Note
4 Installing Python 3 on Windows
5 Installing PyCharm IDE on Windows
6 Running Python Scripts using PyCharm
7 Running Python Scripts using the Command Line
8 Just a few Words about Windows Installation
9 Installing GNS3 on Windows 10
10 Running Cisco IOU Images in GNS3 on Windows 10
11 Connecting to Cisco IOU Images Running in GNS3 from Window 10

Working with Text Files in Python
12 Intro
13 Opening and Reading Files
14 Reading Files Tell, Seek and Cursors
15 The With Keyword
16 Reading Files into a List
17 Writing to Text Files
18 Reading CSV Files
19 Writing CSV Files
20 Using CSV Custom Delimiters
21 Using CSV Dialects
22 Assignment File Processing
23 Assignment Answer 1 File Processing
24 Assignment Answer 2 (CSV Module) File Processing

Hands-On Challenges – Working With Files

Data Serialization and Deserialization in Python (Pickle and JSON)
25 Intro to Data Serialization
26 Pickle Data Serialization and Deserialization
27 JSON Data Serialization
28 JSON Data Deserialization
29 Assignment JSON and RequestsREST API
30 Assignment Answer JSON and RequestsREST API

Network Automation with Paramiko (SSH)
31 Intro to Paramiko
32 Extra Enable SSH on Cisco Devices
33 Connecting to Networking Devices using Paramiko
34 Using kwargs and Arguments Unpacking
35 Running Commands on Cisco Devices
36 Securing the Passwords Using getpass
37 Automating the Configuration (OSPF) of Multiple Cisco Routers
38 Running Commands on Linux – Method 1
39 Running Commands on Linux as a Non-privileged User – Method 2
40 Running Commands on Linux as root – Method 2
41 Paramiko Refactoring. Creating myparamiko Module
42 Running Commands Using myparamiko on Cisco IOS
43 Importing myparamiko Module
44 Backup the Configuration of a Single Cisco Device
45 Automating the Backup Configuration of Multiple Cisco Devices
46 Implementing Multithreading (Python and Paramiko)
47 Assignment Interactive User Creation on Linux with Paramiko
48 Assignment Answer Interactive User Creation on Linux with Paramiko
49 Secure Copying Files with SCP and Paramiko from Python

Hands-On Challenges – Network Automation with Paramiko

Network Automation with Netmiko (SSH)
50 Intro to Netmiko. Netmiko vs. Paramiko
51 Connecting and Running a Command on a Networking Devices
52 Netmiko Prompt. Enable & Global Config Mode
53 Running Multiple Commands on a Networking Device
54 Configuring a Networking Device from a File
55 Configuring Multiple Networking Devices from Multiple Files
56 Automating the Backup of Multiple Cisco Devices Using Netmiko
57 Netmiko Without Multithreading
58 Implementing Multithreading (Python and Netmiko
59 Netmiko and Linux
60 Troubleshooting Netmiko
61 Preparing the Router for SCP
62 Copy files to Networking Devices using SCP and Netmiko
63 Assignment Check Interface Status and Enable it if it’s Disabled
64 Assignment Answer Check Interface Status and Enable it if it’s Disabled

Hands-On Challenges – Network Automation with Netmiko

[Extra] – Running Arista vEOS and Juniper vSRX in GNS3
65 Configure Arista EOS Switches
66 Netmiko in a Multivendor Environment Cisco & Arista Configuration

Network Automation with Napalm
67 Intro to Napalm
68 Installing Napalm. Connecting to a Device
69 Displaying Information
70 Retrieving Information (facts, interfaces, arp table etc)
71 Checking Connectivity Between Devices (napalm ping)
72 Configuration Management
73 Merging Configurations
74 Configuration Rollback

Network Automation with Telnet
75 Bytes Objects, Encoding and Decoding
76 Telnet Protocol Basics. Configure and Connect to Cisco Devices
77 Connecting to Network Devices with Telnet from Python
78 Configuring Multiple Devices (Network Automation)
79 Securing the Passwords Using getpass
80 Telnet Enhancement (Refactoring) Using Object Oriented Programming
81 Testing the Custom Telnet Class. Configure Loopback Interfaces and OSPF
82 Configuring Multiple Devices Using the Custom Telnet Class
83 Improving the Custom Telnet Class

Hands-On Challenges – Network Automation with Telnet

Network Automation Using Serial Connections
84 Serial Communication Basics. Connecting to a Console Port
85 Open a Serial Connection to a Device Console Port
86 Configure Cisco Devices using Serial Connections
87 Pyserial Refactoring. Creating Our Own myserial Module
88 Module Enhancement. Initially Configuration of a Cisco Device
89 Initial Configuration Automation From a File

Useful Python Modules
90 High-level File Operations The Shutil Module
91 Running System Commands The Os Module
92 Running System Commands The Subprocess Module

[Extra] – SSH Public Key Authentication (Cisco IOS & Linux)
93 SSH Public Key Authentication Overview
94 Generating SSH Key Pair on Windows
95 Generating SSH Key Pair on Linux
96 Configuring SSH Public Key Authentication on Cisco IOS – Part 1 [Windows]
97 Configuring SSH Public Key Authentication on Cisco IOS – Part 2 [Linux]
98 Configuring SSH Public Key Authentication on Linux

[Extra] – Ansible – Automate for Everyone
99 What is Ansible
100 Ansible Components
101 Installing Ansible
102 Inventory and ansible.cfg Files
103 Intro to Ad-Hoc Commands
104 Ad-Hoc Commands Part 1 command, shell, raw Modules
105 Ad-Hoc Commands Part 2 setup, file, copy Modules
106 Ad-Hoc Commands Part 3 apt and service Modules

[Extra] – Ansible Playbooks
107 YAML Files
108 Intro to Ansible Playbooks
109 ios command Modul
110 Saving Output to a File
111 network cli vs local. Privileged Exec Commands in Playbooks
112 Behavioral Inventory Parameters
113 Behavioral Inventory Parameters in Playbooks and Inventory Files
114 ios config Module
115 ios config Module parents Argument
116 Backup running-config Using ios config Module
117 Ansible Loops Create Linux Users
118 Arista eos config Module
119 Playbook with Multiple Plays for a Multivendor Topology (Cisco & Arista)
120 Ansible Vault

[Python Programming] – Python Basics
121 Variables
122 Constants
123 Comments
124 Dynamic vs. Static Typing
125 Built-in Types
126 Numbers and Math Operators
127 Comparison and Identity Operators. Mutability vs. Immutability
128 Boolean Variables
129 Boolean Operators

[Python Programming] – Strings in Python
130 Intro to Strings
131 Get User Input
132 Type Casting
133 String Indexing and Operations
134 String Slicing
135 String Formatting (F-Strings)
136 Recap – Printing Strings
137 String Methods

[Python Programming] – Program Flow Control
138 If Elif and Else Statements
139 For Loops
140 Ranges In-depth
141 For and Continue Statement
142 For and Break Statement
143 While Loops
144 While and continue Statement
145 While and break Statement

[Python Programming] – Lists and Tuples in Python
146 Intro to Lists
147 List Operations
148 List Methods Part 1 Append, Extend, Insert, Copy
149 List Methods Part 2 Clear, Pop, Index, Count
150 List Methods Part 3 Sort, Max, Min and Sum
151 Intro to Tuples
152 Tuple Operations
153 Tuple Methods
154 Tuples vs. Lists

[Python Programming] – Sets, Frozensets and Dictionaries in Python
155 Intro to Sets
156 Set Methods Part 1 Add, Clear, Copy, Remove, Discard, Pop
157 Set Methods Part 2 Difference, Symmetric Difference, Union, Intersection
158 Fronzensets
159 Intro to Dictionaries
160 Working with Dictionaries
161 Dictionary Operations and Methods

[Python Programming] – Functions in Python
162 Intro to Functions
163 The return Keyword
164 Functions Arguments Positional, Default, Keyword, args and kwargs
165 Scopes and Namespaces
166 Lambda Expressions
167 The Special Constant None

[Python Programming] -Errors and Exception Handling
168 Intro to Exceptions
169 Exception Handling Try…Except…Else…Finally

[Python Programming] – Object Oriented Programming Basics
170 Intro to Object Oriented Programming
171 Defining Classes and Objects
172 The init Method
173 Instance Attributes and Class Attributes
174 Magic Methods

Course Completion
175 Congratulations