27 Weeks -Comprehensive Network Automation Course Free for Freshers: Python and Ansible
It's been a while since my co-founder, Amit Tanwar (CCIE Security #63532), and I have been planning to create a repository of over 1000 Python and Ansible scripts. These scripts are designed to help network engineers accomplish their daily tasks by learning and practicing with them.
However, we decided to create a free course first, as we did not find any available courses in the market that teach automation in a plain English manner.
As part of our new initiatives, we are introducing a weekly segment of our course on this blog, as well as offering a weekly newsletter delivered to your inbox if you subscribe to our newsletter on this site.
Here is what our course outline looks like for this course:
**
Module 1: Introduction to Ansible**
Understanding Ansible automation and its benefits for network devices
Ansible architecture: Control node, managed nodes, and inventory
Installing and configuring Ansible on the control node
Writing and running ad-hoc commands for network devices
Using Ansible modules for Cisco networking tasks
Module 2: Ansible Playbooks and YAML
Introduction to Ansible playbooks and YAML syntax
Creating basic playbooks for Cisco routers and switches
Using variables, loops, and conditionals in playbooks
Organizing tasks and playbooks with roles
Module 3: Ansible for Cisco Device Configurations
Gathering facts from Cisco devices using Ansible
Configuring interfaces, VLANs, and OSPF using Ansible
Managing access control lists (ACLs) and security settings
Configuring SSH, SNMP, and NTP on Cisco devices
Module 4: Dynamic Inventory and Variables
Using dynamic inventory for automatically discovering Cisco devices
Using host and group variables for device-specific configurations
Implementing conditionals and Jinja2 templates for dynamic configurations
Module 5: Advanced Ansible for Cisco Networking
Working with multiple inventory files and groups
Integrating Ansible with external data sources (e.g., CSV, JSON)
Using Ansible Vault for secure storage of sensitive data
Using custom Ansible modules for Cisco-specific tasks
Module 6: Network Change Management with Ansible
Implementing configuration backups and rollbacks with Ansible
Using version control (e.g., Git) with Ansible for network configurations
Automating network compliance checks and reporting
Module 7: Network Monitoring and Maintenance Automation
Using Ansible for network device monitoring and health checks
Automating routine network maintenance tasks with Ansible
Scheduling Ansible playbooks with Cron for regular network maintenance
Module 8: Ansible Tower and Network Automation
Introduction to Ansible Tower for centralized automation management
Creating job templates and workflows for Cisco device automation
Implementing role-based access control (RBAC) in Ansible Tower
Module 9: Advanced Network Automation Project
Designing and implementing a comprehensive network automation project
Using Ansible for end-to-end network provisioning and management
Incorporating best practices and security considerations
Module 10: Troubleshooting and Debugging Ansible Playbooks
Identifying and resolving common issues in Ansible playbooks
Using Ansible's debugging tools for troubleshooting network automation tasks
Strategies for error handling and playbook optimization
Module 11: Ansible Networking Modules for Cisco
Exploring the Ansible networking module ecosystem for Cisco devices
Leveraging specialized modules for advanced Cisco networking tasks
Module 12: Real-World Network Automation Project
Working on a real-world network automation project using Ansible for Cisco devices
Collaborating with other participants to design and execute the project
Presenting the completed project to showcase acquired skills
Python Automation for Network Engineers
Module 1: Introduction to Python for Network Automation
Introduction to Python and its role in network automation
Setting up the Python environment and installing necessary libraries
Basic Python concepts: variables, data types, loops, and conditionals
Using Python for simple network tasks (e.g., ping, traceroute)
Module 2: Network Device Connectivity with Python
Connecting to Cisco devices using SSH and Telnet with Python
Handling device credentials securely with Python
Retrieving device information (e.g., device model, OS version) using Python
Module 3: Configuration Management with Python
Reading and writing device configurations with Python
Implementing configuration backup and restore automation
Creating configuration templates with Python
Module 4: Automating VLAN Configuration
Automating VLAN configuration on Cisco switches with Python
Using Python to add, modify, and remove VLANs dynamically
Module 5: Network Device Inventory Management
Building a network device inventory system with Python
Using Python to maintain an up-to-date inventory of Cisco devices
Module 6: Network Monitoring with Python
Implementing network monitoring solutions with Python
Creating Python scripts to monitor device availability and performance
Module 7: Automating Routing Protocol Configuration
Using Python to automate the configuration of routing protocols (e.g., OSPF, BGP) on Cisco routers
Dynamic routing updates and optimizations with Python
Module 8: Network Service Deployment Automation
Automating the deployment of network services (e.g., DHCP, DNS) with Python
Configuring network services on Cisco devices programmatically
Module 9: Network Troubleshooting with Python
Using Python for automated network troubleshooting and diagnostics
Python scripts for analyzing logs, interfaces, and network traffic
Module 10: Real-Time Telemetry and Streaming
Leveraging Python for real-time network telemetry and streaming data
Integrating Python with telemetry protocols like gRPC and RESTCONF
Module 11: Secure Network Automation with Python
Implementing secure practices for network automation with Python
Encrypting sensitive data and using secure authentication methods
Module 12: Advanced Python for Network Automation
Creating custom Python modules for specific network tasks
Advanced Python programming techniques for network automation
Module 13: Advanced Network Automation Project
Designing and implementing a comprehensive network automation project using Python
Incorporating best practices and security considerations
Module 14: Troubleshooting and Debugging
Identifying and resolving common issues in Python scripts for network automation
Using Python debugging tools and strategies for error handling
Module 15: Real-World Network Automation Project
Working on a real-world network automation project using Python for Cisco devices
Collaborating with other participants to design and execute the project
Presenting the completed project to showcase acquired skills
Additional Practice:
Encourage participants to explore additional Python libraries and modules relevant to network automation
Provide hands-on labs, code challenges, and network simulation environments
Engage in discussions and share experiences in a supportive learning community
Thank you for reading.
Please subscribe to our newsletter to receive a weekly dose of learning.
Please feel free to like and share our content, so that an increasing number of engineers can stay updated on new-age technologies.