
Explore why Python powers network automation and how programmable scripts boost configuration, troubleshooting, and monitoring of devices and servers, unlocking career growth and greater value in the job market.
Master network automation with Python through hands-on labs, core Python practice, and multi-vendor tools like napalm and Ansible to boost job prospects and daily efficiency.
Set up development environment by installing Python 3 and PyCharm, run Python scripts, configure GNS3 VM on Windows 10 and Linux to run Cisco IOS or IOU, and ping devices.
Install Python version and learn to run code using editors like Ripple or Gloat and Python IDLE. Use PyCharm, VS Code, Jupyter Notebook, or command line for DevOps or automation.
Install Python 3 on Windows 10 by downloading the official installer from python.org, running it, adding Python to PATH, and verifying the installation with python and IDLE.
Install PyCharm on Windows using the community edition, download the latest version, run the installer, accept the license, restart, and customize theme and plugins for a tailored development environment.
Learn to create and run Python scripts in PyCharm, a popular IDE, where each script is a .py file inside a project with a virtual environment.
Learn to run Python scripts from the command line, including on remote machines without graphical environments, using absolute or relative paths, and cross-platform tips for Windows and Linux/macOS.
Install Gns3 on Windows 10 with a fresh 64-bit setup, meet minimum hardware, install Gns3 all-in-one, then configure the Gns3 virtual machine with VirtualBox to run iOS images.
Install the GNS3 VM on Windows 10, configure Cisco IOU IOS on Unix in Genesis 3 on Windows 10, and enable Windows-to-device communication in Genesis 3 to test concepts.
Learn how to run Cisco IOU images in GNS3 on Windows 10, generate the license with a Python script, and configure L3 IOU devices for a basic network test.
Configure Windows loopback and a gns3 cloud to enable python-based network automation by connecting windows 10 to Cisco iou images in gns3 and validating connectivity.
Explore how GitHub Copilot speeds Python scripting and network automation, with setup and use in PyCharm. See examples like connecting to a remote server via SSH to run commands.
Discover GitHub Copilot, an AI powered coding partner that translates natural language to code in real time and boosts productivity with real-time suggestions across languages like Python and JavaScript.
Install and set up GitHub Copilot in PyCharm, sign in, and manage its enabled state via the status icon. See Copilot generate Python functions like primes and Fibonacci sequences.
Learn to automate network tasks by processing text files in Python, including reading, searching, and writing Unicode text, and apply file-based configurations to multiple routers.
Open and read text files in Python using the built-in open function in text mode, accessing content with the read method, and close the file to release resources.
Explore absolute versus relative paths and how the current working directory shapes file access. Resolve common path errors by using proper slashes, raw strings, or absolute paths.
Learn to open and read files in Python, using read with a size to fetch content, and manage the cursor with tell and seek from the beginning to the end.
Learn how the with statement opens a file in Python and automatically closes it, preventing resource waste and errors from accessing a closed file.
read a file into a Python list using multiple methods, including splitlines, readlines, and list, then iterate and handle newlines.
Learn to write to text files in python using open in write, append, and read-write modes; manage newlines, create or overwrite files, and control content via cursor position.
Learn to read a colon-delimited text file into a list of lists, exclude the header, and extract device fields (IP address, username, password, and commands) for network automation using Python.
Learn to read csv files with Python's csv module, opening in read-only mode, iterating with a reader, and building a month-to-flights dictionary to identify the busiest month from 1958 data.
Write csv files in Python using the csv writer, append mode, and writerow to add rows; include headers and use a loop while resolving extra newlines with the newline parameter.
Learn how to read and parse csv files with custom delimiters using Python's csv module, including colon-delimited passwd files, delimiter parameters, and iterating rows.
Master network automation with Python teaches reading and writing csv files with custom dialects. Register and use a hashes dialect and explore built-in Excel, Excel tab, and Unix dialects.
Parse a device config file in Python by reading lines into a list of sublists, splitting with colon to extract hostname, IP address, username, and password for automated network setup.
Read a file, split lines into a list, parse each line by colon into host, IP address, user, and password, and build a nested list of devices.
Use csv module from the python standard library to read colon-delimited lines from devices.txt with csv.reader, iterating rows to build a list of host, ip address, user name, and password.
Explore data serialization in Python by converting objects into storable or transmittable formats and back, illustrated with a dictionary example and previewing pickle and json.
Learn to serialize Python objects to bytes with pickle, save to a binary file, and deserialize back to Python objects, while noting security risks and Json as a safer alternative.
Explore serializing Python objects to JSON with Python's built-in json module, compare JSON with pickle for interoperability and security, and use dump and dumps with indent for readable output.
Explore deserializing json into Python objects using json.load and json.loads, reading from files and strings, and understand how json maps tuples to lists and sets are not json serializable.
Fetch a todos list from the json placeholder api using Python's requests library, load the json into a Python object, and display only the todos with completed true.
Install and import requests and json in Python, fetch data with requests.get, and parse response text with json.loads. Filter a list of todo dictionaries to print completed tasks.
Explore Paramiko, a pure Python SSH interface, and learn to install it with pip, test in a virtual environment, and prepare to connect to network devices for automated configuration.
Configure a Cisco router to support ssh by setting a hostname, domain-name, generating a 2048-bit rsa key, and enabling ssh version 2. Open port 22 and verify access with putty.
Learn to connect to networking devices and Linux servers from Python scripts using SSH and Paramiko, test connectivity, and manage host key verification with AutoAddPolicy and authentication.
Master python keyword arguments and argument unpacking by passing a dictionary to ssh_client.connect() with **router, ensuring keys match the method's arguments for consistent, reusable values.
Learn to run commands on Cisco devices from Python using ssh and paramiko, with an interactive shell and utf-8 decoding to view full outputs.
Replace hardcoded passwords with the getpass module to securely prompt for a password when automating ssh to a Cisco device; run in terminal to avoid echo.
Automate OSPF configuration on multiple Cisco routers using Python, SSH commands, and a for loop, scaling from a single device to many in a network topology.
Explore running linux commands from python via ssh and paramiko, check ip and ssh status, view /etc/passwd and /etc/shadow, and automate tasks on linux servers with for loops and time.sleep.
Learn to run Linux commands as a non-privileged user over SSH using Paramiko's exec_command, executing each command in its own channel with stdout and stderr, decoding output, and handling errors.
Learn to execute Linux administrative tasks as root using sudo, including remote automation with Paramiko and ssh, adding users, and verifying commands during server configuration.
Refactor paramiko scripts into a reusable myparamiko module that simplifies ssh automation by exposing connect, get_shell, send_command, show, and close functions for Cisco devices and Linux servers.
Connect to a Cisco IOS device via ssh using the connect function and a shell, then send enable and show commands, printing the output. Use router1 with server_ip keys.
Import the myparamiko module into another Python script, guard with if __name__ == '__main__', then connect to a Linux VM, call functions, and show command outputs.
Automate backing up a Cisco device's running configuration using a Python script that connects via SSH, enters enable mode, runs show running, and saves a date-time stamped, versioned backup file.
Automate backing up the configurations of multiple Cisco devices with a Python script that iterates over a routers list to create individual backups in the current directory.
Apply Python multithreading to speed router backups by running tasks concurrently, using a backup function and the threading module with start and join to manage concurrency.
Automate Linux user creation with Python and Paramiko by modifying the script to prompt for the authenticating user and the new user, and optionally display users.
Demonstrates interactive linux user creation using a Python script with Paramiko, prompting for a username, building a sudo useradd command, printing status, and optionally displaying /etc/passwd.
Learn to automate secure file transfers with SCP and Paramiko in Python, uploading and downloading files and directories, using recursive copies and handling remote and local paths.
Learn how Netmiko, built on Paramiko, simplifies ssh-based network automation across multi-vendor devices like Cisco, HP, Arista, and Juniper. Compare Netmiko and Paramiko and set up installation.
Connect to a networking device via SSH using Netmiko and ConnectHandler, authenticate correctly, run commands like show ip interface brief, and print the resulting output.
Enter enable and global configuration modes with Netmiko to run privileged commands, manage prompts, and create a user, verifying changes with show run and prompt checks.
Learn to automate network configuration with Netmiko in Python by sending multiple commands via send_config_set, entering enable and global config modes. Create a loopback and a new user, then save.
Learn how to run commands from a file named ospf.txt on a networking device using Netmiko, via send_config_from_file, demonstrated with enabling OSPF on a router.
Configure multiple networking devices from separate config files using Python and Netmiko, build a device list from IPs, apply per-device commands (including loopback and OSPF), and explore multi-threading for speed.
Automate backing up Cisco device configurations with netmiko by connecting to each router, running show run, and saving hostname-based backups to files named with the current date.
Discover how Netmiko enables automated backups across devices and why multithreading speeds up concurrent executions compared to sequential SSH calls.
Implement multithreading in Python to back up network device configurations in parallel using the threading module, improving total run time from 29 seconds to 9 seconds across multiple devices.
Learn to automate Linux server configuration with Netmiko in Python, using SSH to run commands as root, install apache2 with apt, and verify with dpkg, scalable to many servers.
Learn to troubleshoot Netmiko with a Python script by enabling logging to test.log, inspecting authentication errors, and using read_channel and write_channel methods to verify show version output.
Prepare a Cisco 7200 series router for scp by configuring ssh, creating an admin user, enabling the scp server, and setting aaa in a GNS3 lab.
Copy files to a Cisco device using SCP with Netmiko, create a connection, use file_transfer, specify disk0, and verify transfer with ospf1.txt.
Create a Python script using Netmiko to check a router interface status and send no shut to enable it when down, with the interface name entered at the console.
demonstrates automating interface status checks with netmiko by prompting for an interface, validating status via show ip interface, enabling it when down with no shut, and handling invalid interfaces.
Explore the Python concurrency ecosystem, comparing parallelism for cpu-bound tasks with threading for io-bound work and async io for cooperative multitasking, including multiprocessing, safety, race conditions, and shared memory.
Explore implementing async io in python to write concurrent, io bound network code using coroutines, await, and the event loop, including tasks, futures, and gather to run parallel-like tasks.
Build an asynchronous Python web scraper that fetches multiple urls with async io, and saves the page source to text files asynchronously, all driven by the event loop.
Learn to execute shell commands asynchronously in Python with asyncio subprocess, capturing stdout and stderr, checking return codes, and running multiple commands concurrently to automate the configuration and troubleshooting.
Explore asyncssh for asynchronous ssh in python, overcoming paramiko's threading limitation, and connect to a remote linux vm to run single or multiple commands with asyncio, capturing stdout and errors.
Learn to run multiple SSH sessions concurrently with asyncio and asyncssh, composing a hosts list and per-host commands, gathering results, and handling exceptions and nonzero exit statuses.
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 2024 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 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 Ali
There 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, etc
I'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, 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 device configuration through a serial connection. Pyserial Python module
Improvement of the 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 multi-vendor environments.