Course Overview
Module 1: Python Fundamentals for Network Engineers
Learn and review the essential Python skills required for network automation. This module ensures you are confident with the foundational programming concepts.
Key Skills:
- Work with data types, variables, lists, and dictionaries
- Collect user input using input()
- Apply conditional logic with if, elif, else
- Use loops: for and while
- Handle files: read, write, and append operations
- Practice writing and running Python scripts
Practical Labs:
- Launch the PC with Windows OS
- Start Python and VS Code
- Review Data Types and Variables
- Review Lists and Dictionaries
- Review the Input Function
- Review If, For, and While Functions
- Review Methods for File Access
Tools and Platforms:
- Python 3.x
- VS Code
- Cisco IOS/IOS XE (via Sandbox)
Module 2: Network Automation with Python (Netmiko)
Master network device automation using Python and Netmiko. This hands-on module teaches you how to connect to Cisco routers via SSH, push configurations, and automate device management at scale.
Key Skills:
- Automate SSH sessions using Python and Netmiko
- Use getpass to handle secure login credentials
- Loop through multiple network devices for automation
- Push interface configurations using Python scripts
- Read device lists and store outputs using input/output files
Practical Labs:
- SSH Connection to a Single Router
- Secure SSH Login Using User Input
- Connect to Multiple Devices Using SSH Loop
- Configuring a Loopback Interface on a Router
- Dynamic Interface Configuration Using User Input
- Configuring Interfaces on Multiple Devices
- Automating Device Output Collection with Files
Tools & Platforms:
- Python 3.x
- Netmiko
- VS Code
- Cisco IOS/IOS XE (via Sandbox)
Module 3: Model-Driven Network Automation
Dive into Model-Driven Network Automation with YANG, NETCONF, RESTCONF, and REST APIs. Learn how modern networks use structured data models and programmable interfaces to deliver scalable and reliable automation.
1. YANG
Explore how YANG models define configuration and operational data across devices, forming the foundation for model-driven automation.
Key Skills:
- Understand YANG data modeling (IETF & Cisco models)
- Use pyang to view and validate YANG models
- Define and create a custom YANG model
Practical Labs:
- Explore YANG models from GitHub
- Visualize models using pyang
- Create a Custom YANG Model for a Basic Cisco Switch interface
Tools and Platforms:
- Pyang
- VS Code
2. NETCONF
Master NETCONF, a robust protocol for network device automation, enabling secure retrieval and modification of configurations using structured data models.
Key Skills:
- Learn how NETCONF works and how it sends data
- Connect to devices using the ncclient Python library
- Check device capabilities and supported YANG models
- Read full or specific configuration using filters
- Change device settings using XML data through NETCONF
Practical Labs:
- Connect and launch device from Sandbox
- Use a NETCONF session to gather information
- Install/use ncclient to connect to NETCONF
- Add a print function to the script to list NETCONF capabilities for the Cat_8k
- Use ncclient to retrieve the running configuration
- Use a filter with get_config() to retrieve a specific YANG model
- Use ncclient to configure/change a device
- Assignment: Practice configuring an interface using ncclient with user inputs
Tools and Platforms:
- Python (ncclient, xml.dom.minidom)
- VS Code
- Cisco IOS/IOS XE (via Sandbox)
- Terminal (for NETCONF over SSH testing)
3. RESTCONF
Learn to interact with Cisco IOS XE devices using RESTCONF, a RESTful protocol that uses YANG data models over HTTP.
Key Skills:
- Check if RESTCONF is working on a Cisco IOS XE device
- Set up the device to allow RESTCONF access
- Install and set up Postman for RESTCONF use
- Send GET and PUT requests using Postman
- Create and use JSON data that follows YANG models
- Write Python scripts to send GET and PUT requests automatically
Practical Labs:
- Test connectivity to Cisco Sandbox IOS-XE device
- Configure an IOS XE device for RESTCONF access
- Open and configure Postman
- Use Postman to send GET requests
- Use Postman to send a PUT request
- Use a Python script to send GET requests
- Use a Python script to send a PUT request
Tools and Platforms:
- Postman
- Python (requests, json)
- Cisco IOS/IOS XE (via Sandbox)
- VS Code (for scripting)
4. REST API – NX-API (Cisco Nexus REST API)
Explore how Cisco Nexus switches expose CLI through RESTful NX-API, enabling programmatic access using JSON over HTTP.
Key Skills:
- Generate NX-API JSON/XML payloads from CLI commands
- Understand and work with NX-API request and response formats
- Send REST POST calls using Postman with proper headers and authentication
- Automate NX-OS configuration changes using Python and NX-API
Practical Labs:
- Connect to Sandbox and launch NX device
- Browse device API webpage, generate and copy payload
- Use Postman to make API calls to the API simulator
- Use Python to change hostname
Tools and Platforms:
- Postman
- Python (requests)
- NX-API Developer Sandbox
- VS Code (for scripting)
Module 4: Ansible
Learn to automate Cisco IOS XE device configuration using Ansible, an agentless automation tool that uses YAML playbooks and SSH.
Key Skills:
- Initialize and set up Ansible in VS Code
- Define static inventory and configure ansible.cfg
- Use ios_command and ios_config modules for device interaction
- Automate device configuration backup over SSH
- Apply interface configurations using Ansible playbooks and Jinja2 templates
Practical Labs:
- Ansible initialization in VS Code
- Configure Ansible
- Use Ansible to back up a configuration
- Use Ansible to configure a device (interface configuration)
Tools and Platforms:
- Ansible, Ubuntu, WSL2
- YAML
- Cisco IOS/IOS XE (via Sandbox)
- VS Code (with WSL – Ubuntu)
Module 5: Version Control System – Git
Learn to use Git for version control, enabling collaboration and change tracking for network automation scripts and projects.
Key Skills:
- Understand Git concepts (commit, branch, clone, push, pull)
- Initialize Git repositories and track changes
- Create and switch branches
- Use GitHub for remote repositories
- Collaborate using git clone, git pull, and git push
Practical Labs:
- Install Git and set global configuration
- Initialize a local Git repo and track changes
- Commit Python/Ansible files to the repo
- Create, switch, and merge branches
- Push code to GitHub and pull updates from remote
- Resolve simple merge conflicts during collaboration
Tools and Platforms:
- Git (CLI)
- GitHub
- VS Code (with Git integration)
- Python/Ansible project files
No reviews yet. Be the first to leave one!