Course Overview
This course provides a practical and hands-on approach to network automation using Python. It’s designed to empower network engineers to move beyond manual, time-consuming command-line interfaces. Participants will learn to leverage a full-featured programming language for advanced data manipulation, multi-vendor automation, and seamless integration with the broader IT ecosystem. The hands-on labs focus on automating real-world network devices from major vendors like Cisco, Arista, and others.
Who should attend
- Network Engineer
- Network Architect
- DevOps/SRE (Site Reliability Engineer)
- Network Operations Center (NOC) Technician/Analyst
- IT Infrastructure Manager
Prerequisites
- Although not required, students with some experience programming will most appreciate this hands-on course.
Course Objectives
- Apply Python to Network Tasks: Use Python fundamentals to programmatically interact with network devices.
- Master Multi-Vendor Automation: Confidently manage and configure devices from different vendors via both CLI and APIs.
- Automate with Data: Parse and manipulate structured and semi-structured data formats like JSON and CLI output.
- Build Reliable Solutions: Securely manage credentials and version control network configurations to ensure reliability.
Outline: Network Automation with Python Fast Track (PY202FT)
Python Fundamentals for Networking
- Lecture + Lab: List and Dict Modeling
- Lecture + Lab: Python Data to JSON
- Lecture + Lab: Python Data to YAML
- Lecture + Lab: Read from Files
- Lecture + Lab: CSV data - Standard Library and pandas dataframes
- Lecture: Functions and Control Flow
- Lecture + Lab: Modules, Libraries, and Exception Handling
CLI Automation
- Lecture: Introducing Paramiko
- Lecture + Lab: Automating Commands Across SSH
- Lecture + Lab: Paramiko and SFTP
- Lecture + Lab: Python Telnet Client
- Lecture + Lab: Performing ICMP Checks
Multi-Vendor Automation
- Lecture + Lab: Netmiko for Router and Switch Automation
- Lecture: Python to Cisco NX-OS
- Lecture + Lab: Getting Switch Configuration with NAPALM
- Lecture + Lab: Switch Validation and NAPALM
- Lecture + Lab: Exploring Network Interfaces
Parsing and Data Handling
- Lecture + Lab: Python and Regular Expression for Searching
- Lecture + Lab: Parsing Semi-Structured Data with Regex
- Lecture + Lab: Python for Network Captures and Wireshark
- Lecture + Lab: Examining Network Capture pcaps Files with termshark
API-Driven Automation
- Lecture + Lab: APIs, pip, and requests
- Lecture + Lab: Restful Open APIs with requests
- Lecture + Lab: Interacting with APIs
- Lecture + Lab: Restful Open APIs with Standard Library
- Lecture + Lab: API-Driven Network Automation with requests
Data Logging and Reliability
- Lecture + Lab: Lightweight Database Interactions
- Lecture + Lab: Data Logging and State Tracking
- Lecture + Lab: Controlling run time with Environmental Variables
- Lecture + Lab: Using Argparse
Advanced and Optional Topics
- Lecture + Lab: Automating HTTP Requests
- Lecture + Lab: Automating HTTP Requests with Async IO
- Lecture + Lab: Introduction to FastAPI
- Lecture + Lab: Web Scraping Data with Beautiful Soup