Course Description
Managing networks can be repetitive and error-prone, but Python can make incredible changes to how you automate with all major (and most minor) network vendors. This course is driven by lessons and labs designed to utilize Python libraries designed to interact with and configure your network devices. At the conclusion of this course, you’ll be empowered with the tools and skills necessary to take your network to the next level. This class is a combination of live demonstrations and hands-on labs with virtual network devices and endpoints as targets for your configuration.
Target Student
This course was written for networking professionals looking to expand their capabilities by automating their workload with Python. This includes Network Engineers, Network Architects, System Admins, DevOps Engineers, Cisco Certified Professionals (CCNA, CCNP, CCIE), and developers interested in network programmability with Python.
Course Objectives
- Sending HTTP Requests to APIs with builtin and 3rd party libraries
- Opening Telnet Sessions with built-in libraries
- Automating SSH commands with Paramiko
- Performing ICMP Pings
- Transforming Data between JSON, YAML, and Python
- Retrieve and Push network device configuration via Netmiko and Napalm
- Use Pandas to manipulate data in a variety of formats (CSV, Excel, JSON)
- Database manipulation
- Capturing and Parsing Network Traffic
- AI LLM prompt engineering for Python snippets and jumpstarting solutions
Course Content
AI LLM Toolkit
- Lecture + Lab: Large Language Model toolkit for AI Solution Assistance
Software Control Management
- Lecture + Lab: SCM Option #1 - GitHub
- Lecture + Lab: SCM Option #2 - GitLab
Python
- Lecture + Lab: Installing Python
Data and File Manipulation
- Lecture + Lab: Read from Files
- Lecture + Lab: Python Data to JSON
- Lecture + Lab: Python Data to YAML
- Lecture + Lab: Pandas dataframes with Excel, CSV, json, HTML, and beyond
- Lecture + Lab: CSV data - Standard Library and pandas dataframes
- Lecture + Lab: List and Dict Modeling
APIs and HTTP
- Lecture + Lab: Interacting with APIs
- Lecture + Lab: APIs, pip, and requests
- Lecture + Lab: Restful Open APIS with Standard Library
- Lecture + Lab: Restful Open APIS with requests
Troubleshooting
- Lecture + Lab: Python for Network Captures and Wireshark
- Lecture + Lab: Examining Network Capture pcaps Files with termshark
ICMP (ping)
- Lecture + Lab: Performing ICMP Checks
Automating Email
- Lecture + Lab: Automating SMTP
- Lecture + Lab: Exploring Network Interfaces
Front End Web Calls
- Lecture + Lab: Web Scraping Data with Beautiful Soup
- Lecture: Automating Front-End Web Forms
Connecting with Python
- Lecture + Lab: Python Telnet Client
- Lecture: Introducing Paramiko
- Lecture + Lab: Paramiko and SFTP
- Lecture + Lab: Automating Commands Across SSH
Python and Network Devices
- Lecture: Python to Cisco NX-OS
- Lecture + Lab: Netmiko for Router and Switch Automation
- Lecture + Lab: Lightweight Database Interactions
NAPALM
- Lecture + Lab: Getting Switch Configuration with NAPALM
- Lecture + Lab: Switch Validation and NAPALM
Building APIs
- Lecture + Lab: Building APIs with Python Flask
- Lecture + Lab: Intro to Building Django Apps
CI/CD Automation
- Lecture: Introduction to CI CD with GitLab
- Lecture + Lab: Running Python in a Container
- Lecture: CI CD with Python, Webhooks, and GitLab Runner
- Lecture + Lab: Lifecycling a Python App with GitLab
Testing
- Lecture + Lab: Testing Code with PyTest
Optimizing Code for Automation
- Lecture + Lab: Using Argparse
- Lecture + Lab: Controlling run time with Environmental Variables
- Lecture + Lab: Python and Regular Expression for Searching
Concurrency
- Lecture + Lab: Automating HTTP Requests
- Lecture + Lab: Automating HTTP Requests with Async IO
Enterprise Applications
- Lecture + Lab: VMWare NSX Automation
- Lecture + Lab: scapy - Network Traffic as Code
Recommended Prerequisite