Python for Network Automation

Duration

35 hours or 5 classroom days

Course Overview

This is a demo and hands on driven course for learning Python for Network Automation, taught by a network and python professional. Maximize your networking skill set by learning to script solutions to tedious and complex tasks. Use Python to interact with APIs, opening Telnet and SSH sessions, work with files and popular data structures, automate filling out web forms, and learn to interact with switches and routers across the most popular network vendors.

Class is a combination of lecture, demonstration, and hands-on labs. Students are invited to share their own relevant Python and Ansible scripts with the instructor to ensure class subjects are as relevant as possible.

Download Detailed Outline

Python for Network Automation

Lecture and Lab

5 Day Course

Course Overview

This course is driven by demonstration and reinforced by hands-on labs for learning Python for Network Automation. Maximize your networking skill set by learning to script solutions to tedious, complex and oftentimes overwhelming networking tasks.

What You’ll Learn
Automate front end interfaces, interact with APIs, open Telnet and SSH sessions, read and write data out of popular file types (including Excel), transform data between popular data structures like JSON and YAML, and most importantly, learn to interact with switches and routers across the most popular network vendors using multiple Python libraries.

  1. Reviewing Python Essentials
    • Version Controlling Code
    • Up and running with Python (installing on various platforms)
    • Lists
    • Dictionaries
    • File Input and Output
    • Functions
    • Methods
    • Review of the Standard Library
    • Using pip and pypi.org
  1. Python and Data translation
    • JSON
      • Reading from files
      • Reading from API
    • YAML
      • Reading from files
    • CSV
      • Reading from files
    • Excel
      • Using pyexcel library
      • Using pandas library
  1. Python and RESTful APIs
    • RESTful APIs decoded
    • Reading attachments
    • API keying
    • Passing credentials securely
    • Standard Library Solution
    • 3rd party library solutions
  1. Automating SMTP and Extended SMTP (Email)
    • SMTP
    • Extended SMTP
    • Automating Email solutions
    • Setting headers and creating a body
    • Attachments
    • Google Gmail considerations
    • Microsoft considerations
  1. Completing Webforms with Python
    • Web Scraping
    • Automating front-ends with code
    • Selenium for Automation
    • Completing webforms
    • Filling in data with data from open files
    • How to select ‘buttons’
    • How to make ‘clicks’
  1. Python and Telnet
    • RFC 854 - Telnet Protocol
    • Standard Library Solution
  1. Python and SSH
    • Standard Library Solution
    • Paramiko
      • SSH Agents
      • Key exchange and authorization
      • Securing dealing with passwords
      • Configuration
      • SFTP
    • Passing commands and capturing responses
    • Parsing remote logs
  1. Automating Switches and Routers with Python
    • Netmiko
    • Push / Pull Configuration
    • Retrieve information about devices
    • Manage the devices configuration
    • Connecting and Running a Command on a Networking Device
    • Enable & Global Config Mode
    • Configure a Networking Device from a File
    • Configuration Backup using Netmiko
    • VLAN & VXLAN management
    • BGP & OSPF Management
    • Solutions for HSRP, VRRP, and GLBP
  1. Automating Networks with Python NAPALM
    • Installation
    • Tutorials
    • Validating deployments
    • Supported Devices
    • Command Line Tool
    • NetworkDriver
    • YANG
    • napalm-logs
    • Integrations
  1. Python and Network Captures
    • Wireshark
    • TCPDump
    • Decoding network captures with Python
    • *.pcap files
    • *.pcap-ng files
    • Parsing network captures
    • Regular Expression Library
  1. Optimizations and Security
    • Multiprocessing and Multithreading
    • Examples of running in parallel
    • Cost and Benefit Considerations
    • Secure hashes and digests
    • MD5, SHA, and OpenSSL Options
    • Encrypting content
    • Considerations for credentials
    • Securely passing input
  1. Overview of Ansible (optional)
    • Relationship of Ansible and Python
    • Overview and Installing
    • Where YAML fits
    • Modules for Cisco, Juniper, Arista, and other major vendors
      • shell, raw, copy, file, apt, service, cli_command, cli_config
    • Constructing the playbook
    • Applications of Python versus Ansible
    • Writing an Ansible module with Python

Labs

  • Lab 01 - Using vim
  • Lab 02 - Making and Syncing a Github account
  • Lab 03 - Working with Local FIles
  • Lab 04 - Working with CSV, YAML and JSON
  • Lab 05 - Interacting with the web browser
  • Lab 06 - Interacting with APIs
  • Lab 07 - APIs, pip, and requests
  • Lab 08 - Python and Excel
  • Lab 09 - Automating SMTP (Email)
  • Lab 10 - Web Scraping Data
  • Lab 11 - Automating Front End Webforms
  • Lab 12 - Python and Telnet
  • Lab 13 - Python and SSH
  • Lab 14 - Introducing Paramiko
  • Lab 15 - Automating Commands Across SSH
  • Lab 16 - Paramiko and SFTP
  • Lab 17 - SSH and Remote Server Management
  • Lab 18 - Virtualizing Switches with GNS3
  • Lab 19 - Installing Switch Configuration
  • Lab 20 - Performing ICMP checks (ping)
  • Lab 21 - Router and Switch management
  • Lab 22 - Netmiko for Router and Switch Automation
  • Lab 23 - Writing a Netmiko Application
  • Lab 24 - Creating Rollbacks
  • Lab 25 - Intro Network Automation with NAPALM
  • Lab 26 - Switch Validation and NAPALM
  • Lab 27 - Switch Changes and Rollback with NAPALM
  • Lab 28 - Manipulating Switches via APIs
  • Lab 29 - Creating Network Compliance Files
  • Lab 30 - Error Handling
  • Lab 31 - Python for Network Captures and Wireshark
  • Lab 32 - Python for Analyzing Network Traffic
  • Lab 33 - Python and Regular Expression for Searching
  • Lab 34 - Parsing Log Files with Regular Expression
  • Lab 35 - Python Cisco Configuration Parser
  • Lab 36 - Threads and Parallel Processes
  • Lab 37 - Secure Hashes and Message Digests
  • Lab 38 - Securely Accepting Input and Encryption
  • Lab 39 - Introduction to Python Ansible (Optional)
  • Lab 40 - Introduction to Network Automation with Python Ansible (Optional)

Prerequisites

Keyboard proficiency, and some basic understanding of network concepts is the only hard requirement. Students with some previous exposure to Python, any another scripting experience, will take the most from the course. In lieu of any scripting experience, Alta3 Research’s Python Basics course is recommended.

Recommended Prerequisite: Python Basics (5 days)

Who Should Attend

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.

Follow-on Courses

  • Recommended Follow up: APIs and API Design with Python (5 days)
  • Recommended Follow up: Python and Ansible for Network Automation (5 days)
python3_tutorial

Enroll

Self-paced: $ 495 - COMING SOON USD

  • COMING SOON
  • Digital course materials
  • Includes 1 year access to videos
  • 60 day access to hands on labs

Public Virtual Class: $ 2195 USD

  • Live Instructor Led Webinar
  • A teacher to guide you
  • Plus all the self-paced items

Next Public Class Offerings:

  • September 23-27, 2019
  • Bring us Onsite:

    • Contact us for onsite quotes

    Testimonials

    Different plans for everyone

    Choose the pricing that fits your business needs

    Public Virtual Class
    $ 2195
  • Live Instructor Led Webinar
  • A teacher to guide you
  • Plus all the self-paced items
  • Buy Instructor Led

    Onsite
    Contact Us
  • Instructor led class
  • Hands-on lab access
  • Plus all the self-paced items
  • Contact Us