Course Overview:
This 5-day hands-on training course delivers expertise on Python Network Automation. You will MASTER all the Python 3 key concepts starting from scratch. No prior Python or programming knowledge is required. You will learn how to configure networking devices with Python using a Serial Console Connection. And learn how to automate the configuration of networking devices with Python 3 in a Multivendor Environment as well as Use NAPALM Python library in a Multivendor Environment. Learn and apply advanced Python concepts like Multiprocessing and Multithreading in Network Automation.
Course Objectives:
- You will MASTER all the Python 3 key concepts starting from Scratch. No prior Python or programming knowledge is required
- Learn how to automate the configuration of networking devices with Python 3 in a Multivendor Environment
- Learn network programmability with Python, GNS3 and Ansible
- Learn and apply advanced Python concepts like Multiprocessing and Multithreading in Network Automation
- See real-world examples of automation scripts with Python for Cisco IOS, Arista EOS or Linux
- Understand how to use Telnet and SSH with Python for network automation
- Learn how to use and improve Paramiko and Netmiko for automation of common administration tasks with Python
- Automate and troubleshoot network configurations with Ansible
- You will be able to use Ansible, manage Ansible Inventory files, Tasks, Modules for Linux and networking devices, Playbooks, Vaults and YAML Files
- Use NAPALM Python library in a Multivendor Environment
- Learn how to configure networking devices with Python using a Serial Console Connection
- Improve the existing Python modules and create your own modules for network automation
- You will ultimately gain real-life skills for a good Network of DevOps Engineer
- You will learn in-depth general Python Programming
Pre-requisites:
- No prior Python knowledge is required. There is a general Python Programming section included.
- Basic Knowledge of Networking Concepts (TCP/IP Stack, Cisco CCENT or CCNA Level)
- A Linux, Mac or Windows Machine with an Internet Connection and at least 4GB of RAM
- No paid software required. Only free software will be used: Python3, PyCharm, GNS3, VirtualBox, Linux, etc
- Cisco IOS Images should be acquired by the student (from Cisco’s official website – contract required) to run into GNS3 or practice all the concepts on real Cisco devices
- Basic Knowledge of GNS3 and how to run Cisco Images, although I’ll provide the necessary setup information inside the course
Target Audience:
- Network Administrators, Network (Systems) Engineers, Network (Service) Technicians, Network Analysts, Network Managers
- Junior Programmers, Test Engineers, Test Automation Engineers, QA Engineers and Analysts
Course Duration:
- 5 Days (35 Hours)
Course Content:
Day 1 – Introduction to Python
The course will discuss the introduction to Python Programming and Python basic operating constructs. This part of the course will:
- Describe the Python Programming
- Describe the Python Basic Operation
- Describe the and execute code using the Python Data types
Module 1: Python Data Types
- Python Variables
- Python Numbers
- Python Strings
- Python Lists
- Python Tuples
- Python Dictionary
Module 2: Python Tools & Resources
- List / Set / Dictionary comprehensions
- Python Lambda functions
- Python Map, Filter, Reduce
- Python Threading basics
Day 2 – Python Loops, Functions and Modules
This module will discuss Python Loops and Functions and code modularity. It also will discuss Python file handling and manipulation.
- Describe and execute Python control flow using loops
- Describe and execute Python function
- Create modular codes using Python Modules
- Describe and execute Python File Operations Working with Text Files in Python
- Intro
- Opening and Reading Files
- Reading Files Tell, Seek and Cursors
- Opening and Reading Text Files using seek() and read()
- question
- Coding Exercise Solution
- The With Keyword
- Reading Files into a List
- Reading Files into a List
- question
- Coding Exercise Solution
- Writing to Text Files
- Writing Text Files
- question
- Coding Exercise Solution
- Quiz for File Processing
- questions
- Coding Section – Working with Text Files
- Reading CSV Files
- Writing CSV Files
- Using CSV Custom Delimiters
- Using CSV Dialects
- Coding Section – Working with CSV Files
Day 3 – Network Automation with Telnet
- Telnet Protocol Basics. Configure and Connect to Cisco Devices Connecting to Network Devices with Telnet from Python
- getpass Module
- Network Automation. Configure Multiple Devices
- Telnet Script Refactoring using Object Oriented Programming
- Testing the Custom Telnet Class. Configure Loopback Interfaces and OSPF
- Configure Multiple Devices Using the Custom Telnet Class
- Network Automation With Paramiko (SSH)
Day 4 – Network Automation with Netmiko
- Intro to Netmiko
- Connecting and Running a Command on a Networking Device
- Netmiko prompt. Enable & Global Config Mode
- Running Multiple Commands on a Networking Device
- Configure a Networking Device from a File
- Configure Multiple Networking Devices from Multiple Files
- Configure Backup using Netmiko
- Improvement of the Configuration Backup Script
- Netmiko and Linux
- Preparing the Router for SCP
- Copy files to Networking Devices using SCP and Netmiko Configure Arista EOS Switches
- Netmiko in a Multivendor Environment Cisco & Arista Configuration
- Troubleshooting Netmiko
Day 5 – REST API access
- working with JSON
- using urllib2
- accessing urls with urllib2
- using requests module
- Creating account in github
- Understanding github REST API and api.github.com
- Uploading all the files from local machine to github gist
- downloading all the files from github gist to to the local machine
- GET,POST using requests module Network Automation with Napalm
- Intro to Napalm
- Installing Napalm. Connecting to a Device
- Displaying Information
- Retrieving Information (facts, interfaces, arp table etc)
- Checking Connectivity Between Devices (napalm_ping)
- Configuration Management
- Merging Configurations
- Configuration Rollback