
Meet trainer Dave as he introduces Python learning for network engineers automation masterclass, focusing on Python libraries, network automation use cases, lifetime access, Q&A, updates, and the network evolution channel.
A concise walkthrough of setting up an ubuntu-based lab for python-driven network automation, including virtual environments, Cisco dev devices, and napalm, restconf, yang workflows, plus parsing and templates.
Install Cisco Modeling Lab 2.9 in VMware Workstation, explore the free CML tier, deploy lightweight images, test Netconf and Isconf, and set up bridging with Ansible and Paramiko Python automation.
Set up Ubuntu in a VM with bridged networking, install VS Code, enable SSH, integrate with GitHub, and establish a productive automation development environment with Python, Paramiko, and Ansible.
Compare the old VirtualBox plus PyCharm lab setup with the new VMware workstation and VS Code remote development workflow, including Ubuntu and Gns3 VMs, GitHub cloning, and Python-focused lab steps.
Install VMware Workstation Player, create an Ubuntu 20.04 virtual machine, configure NAT and host-only adapters, enable SSH, and connect to Cisco devices in Gns3 VM for network automation practice.
Install the Gns3 VM in VMware Workstation Player, configure host-only and NAT networks to reach the Ubuntu host, ensure nested virtualization, and install Gns3 desktop for topology creation.
Install VS Code on Windows and configure remote development to connect to an Ubuntu machine via SSH, enabling Ansible extensions, YAML syntax, and a VS Code server for playbooks.
Install Cisco CSR 1000 V in a Gns3 VM by importing the appliance and CSR image, then boot and configure basic settings such as hostname, domain name, and crypto keys.
Begin your automation journey with minimal lab setup, using an open operating system and internet to test Cisco devices in sandbox labs, and set up Ubuntu, RDP, and GitHub Desktop.
Install VirtualBox on Windows, set up Ubuntu 22.04, and build a multi-VM lab with ESXi and CSR 1000 V, using host-only networking to access VMs via RDP.
Install Ubuntu 22.04 in VirtualBox by creating a 4 GB RAM VM with a 30 GB dynamic disk and NAT networking, then install guest additions for clipboard and shared folders.
Enable rdp in Ubuntu by configuring host-only networking, disabling the screen lock, and setting a static remote desktop password. Verify connectivity via ping and rdp in Ubuntu and VirtualBox.
Install GNS3 in an Ubuntu VM on VirtualBox, enable nested virtualization, and set up a basic network with NAT and host only interfaces, including IP configuration and connectivity testing.
Install bridge utils and uml utilities, create a bridge, map tap interface to it, assign IP to the bridge, and verify connectivity with ping between gns3 devices and host-only network.
Install and configure Cisco IOS v in GNS3 on an Ubuntu host, importing a CSR 1000 appliance, establishing host-only networking, and validating reachability between the host and the virtual device.
Install the GNS3 VM in VirtualBox by importing the OVA, configure memory and networking, enable virtualization and nested virtualization, and verify connectivity between the host and the VM.
Enable older ssh key exchange and host key algorithms in Ubuntu by editing the ssh config, establishing connections to older iOS images, updating known_hosts, and validating host trust.
Explore how to create and manage a Python virtual environment in Ubuntu, isolate packages from the base Python, and use pip to install, upgrade, and uninstall libraries.
Learn to test your first automation script in PyCharm by connecting to a Cisco device, authenticating, and executing show commands to retrieve configuration with a network library.
Learn to establish an ssh session with network devices using paramiko invoke_shell, manage host keys, authentication, and interactive command streams.
Learn to work with bytes and Unicode in Python by decoding UTF-8 data, printing decoded text, and using Unicode escapes and emoji codes, including newlines, tabs, and multi-line strings.
Learn to execute multiple commands in one session using a for loop over a command list, with per-command delays, proper output formatting, and reusable code for multiple devices.
Explore how to reuse code with Python functions to connect to multiple devices and execute the same logic, defining a function with def and passing hostname and commands as arguments.
Explore ssh known host key policies in Paramiko, including auto add, load system host keys, and warn or reject policies for trusted host connections.
Enable SSH key-based authentication to Linux OS by generating RSA key pairs, copying the public key to the remote machine, and logging in without passwords using private keys.
Enable ssh key based authentication on Cisco devices by copying the public key, configuring RSA key types, and testing with a Python script.
Master basic text and binary file operations in Python, including reading, writing, listing files, and using with open for safe handling.
Learn to store Cisco command output to timestamped text files by writing Python code that captures and saves command results, including show commands and configurations, with unique filenames.
Read configuration commands from a text file, execute them on a device, and save the output to a timestamped log file while handling command formatting.
Explore string methods in python, including case fold, strip, capitalized, center, and replace, to match user input and handle whitespace and capitalization in a practical example.
Discover Python string methods, using format and f-strings to format IP addresses, and apply find vs index, is decimal, ASCII, identifier, and printable checks to validate characters.
Explore Python string methods theory, including join, left justification, translate with a table, partition, replace, split, and z fill, with practical examples for parsing configurations.
Parse multi-line network output with Python by using split lines to extract interface names and IPs, then format and filter results.
Learn to generate dynamic filenames using Python string methods by reading commands from a file, enumerating them, and building timestamped, underscore-separated names for each command output.
Learn to create dynamic per-command output files in Python by generating filenames with timestamps and sequence numbers, and storing each command’s output with its details.
Learn how to compare text files in Python using the difflib library, generate human-readable deltas, and analyze configuration changes by diffing golden and new config files in the terminal.
Explore how to perform live Cisco config comparisons in html format using Python's diff library, comparing golden and current configs to generate a timestamped, browser-viewable xhtml diff.
Explore Python regex basics to parse Cisco device outputs with pattern matching, raw strings, and character classes. Use compile, search, and groups, including named groups, to extract version numbers.
Create regex pattern objects with re.compile and apply search, group, and find operations to extract matches from version output and email addresses in Python.
Master validating multiline outputs with regex by enabling multiline mode and using anchors ^ and $ across lines, with patterns, dot behavior, escapes, and word boundaries in Python.
Parse Cisco outputs with regex in a Python script, reading show version and show ip interface brief from a text file to extract version, model, serial, uptime, and hostname.
Parse Cisco show run output from a text file using Python and regex to extract hostname, domain name, product ID, serial number, net conf status, and all usernames.
Learn to parse interface configurations and IP addresses from network device files using a robust regex pattern in Python, extracting interface names, IP addresses, and masks into structured dictionaries.
Learn to parse default and static route details with regex patterns in Python, using named groups, the find method, and iteration to extract destination subnet, mask details, and the gateway.
Parse show version output over SSH using regex patterns in Python to extract version, model, and serial data. Build a learning-focused, reusable parsing approach for future network automation tasks.
Parse show run output over ssh with a Python script, update the command and regex patterns, and fix line endings to display live output from the device.
Parse show ip interface brief output using split lines and split methods, then transform interface details into dictionaries with name, IP, and status, including filtering by up interfaces.
Parse show ip interface brief with a regex pattern to extract interface name, ip address, and status, and build a Python script storing results in a dictionary list.
Learn Network Automation skills from scratch to an advanced level.
For attending this course you don't need any prior coding experience.
You will be learning all the required Python concepts in a practical way with Networking Examples
2026 Updated AI Topics:
Model Context Protocol (MCP) -
UV Environment Setup
Add Additional Libraries to MCP
Build Device Automation MCP Server
Build simple MCP Client
Playwright MCP
Agentic AI Workflows -
Async & Await Deep dive
OpenAI Tracing
Pydantic Structured Data
Gemini 3 Thinking Levels
Gemini3 Get Structured Output using Pydantic
Build Multi Agent Config Gatekeeper Agentic AI Workflow
This course is designed for Network Engineers with less or no coding experience.
Throughout the session, we will be using Linux OS (preferably Ubuntu) for running Python scripts.
This course is updated with steps to setup Cisco Modeling Lab (CML) Free Tier for automation Practices
The IDE is VS Code and Cisco devices will be used for demonstrating most of the device interactions. (vIOS, IOS-XE, NXOS etc)
The course will be starting with SSH fundamentals
Initially, Course will take you through Paramiko, Netmiko, NAPALM and Nornir Libraries' fundamentals
CIsco IOS, NXOS, Cisco DNAC Automation Examples
Paramiko invoke_shell and exec_command methods
Pydantic for structured data
Python UV Environment Setup
Setup Model Context Protocol (MCP) Server for Network Automation
Async & Await Deep Dive
Gemini 3 Multi Agent Framework
OpenAI Tracing
Methods supported in Netmiko for device interactions
How to do Configuration parsing using Regular Expressions over SSH
How to enable logging in the script with a log file or event email triggers
How to schedule the Script execution without keeping the terminal opened
How to do IP address and subnet validations using Python
How to do multithreading for parallel execution on multiple devices
Read and write contents to a text file, JSON, YAML, and XML
Manage device inventories or config details in CSV files
Read the configuration data from CSV, YAML, JSON, or text files
How to use textfsm template
How to use Jinja2 templates for creating multiline configuration templates with loops or conditions
How to use NAPALM for multivendor support
How to use getters in NAPALM
How to use config merge, config compare, config replace and config rollback in NAPALMcreate
What is Nornir Framework
How to create an inventory file in Nornir
How to create tasks in Nornir
What are plugins in Nornir
NETCONF/YANG Data models with real-time examples
Netconf Automation using Python Ncclient
RESTCONF API Automation using Requests
Cisco Nexus Automation with NX-API (CLI, JSON-RPC, error handling, parsing outputs)
Cisco PyATS framework for testing, parsing, config compare, and automation workflows
MCP (Model Context Protocol) with Python: build AI-powered automation, create smart apps, automate Cisco configs, browser automation with Playwright, and integrate GenAI into network workflows
Generative AI with Python: Build basic LangChain apps, ChatPromptTemplates, Language Translator apps using Groq API & OpenAI, and integrate GenAI into network automation use cases
Raspberry Pi Micropython Network Monitoring and Automation examples
Course Update log (Latest Topics):
March 2026 - Added Agentic AI Videos
January 2026 - Added Agentic AI Usecases
Sept 2025: MCP (Model Context Protocol) + GenAI Integration with Python
2023–2024: Generative AI Projects (LangChain, Groq API, OpenAI API, Streamlit Apps)
June 2023: Raspberry Pi Micro Python
May 2023: Command Line Arguments using Argparse
April 2023: VMWare ESXi CLI automation using Python
Python Fundamentals Covered:
Strings and String Methods
Bytes and Unicode
Exception handling
stdin, stdout, stderr in Python
File Operations
Config HTML Comparison using Python
Regex Fundamentals
For loop
While loop
if, else, elif
Functions and Modules
Object Oriented Programming: Classes Basics
Multithreading
lists, dictionaries, and its methods
sets, tuples
Pycharm debug Example
Mutable vs Immutable
datetime
schedule
Logging
Enumerate
Tabulate
Itemgettes
List comprehension
copy and deep copy
subprocess
JSON
XML
YAML
Mocropython for beginners
MCP Libraries (mcp, mcp_use, Playwright MCP, etc.)
Generative AI Libraries (LangChain, OpenAI, Groq API, Streamlit integration)