Python 202 – Python for Network Automation

Managing networks can be repetitive and error-prone, but Python can make incredible changes to how you automate with all major (and most minor) network vendors! This course is driven by lessons and labs designed to utilize Python libraries designed to interact with and configure your network devices. At the conclusion of this course, you’ll be empowered with the tools and skills necessary to take your network to the next level. This class is a combination of live demonstrations and hands-on labs with virtual network devices and endpoints as targets for your configuration.

Days : 5
Price :

CAD$3,160.00

Clear

Description

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.

Prerequisites

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

[b[Recommended Prerequisite: Python Basics (5 days)[/b]

Course Objectives

  • Sending HTTP Requests to APIs with built in and 3rd party libraries
  • Opening Telnet Sessions with built in libraries
  • Automating SSH commands with Paramiko
  • Performing ICMP Pings
  • Transforming Data between JSON, YAML, and Python
  • Retrieve and Push network device configuration via Netmiko and Napalm
  • Use Pandas to manipulate data in a variety of formats (CSV, Excel, JSON)
  • Database manipulation
  • Capturing and Parsing Network Traffic

Follow On Courses

APIs and API Design with Python (AADP)

Outline: Python for Network Automation (PNA)

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

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

Python and RESTful APIs

  • RESTful APIs decoded
  • Reading attachments
  • API keying
  • Passing credentials securely
  • Standard Library Solution
  • 3rd party library solutions

Automating SMTP and Extended SMTP (Email)

  • SMTP
  • Extended SMTP
  • Automating Email solutions
  • Setting headers and creating a body
  • Attachments
  • Google Gmail considerations
  • Microsoft considerations

Python and Telnet

  • RFC 854 – Telnet Protocol
  • Standard Library Solution

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

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

Automating Networks with Python NAPALM

  • Installation
  • Tutorials
  • Validating deployments
  • Supported Devices
  • Command Line Tool
  • NetworkDriver
  • YANG
  • napalm-logs
  • Integrations

Python and Network Captures

  • Wireshark
  • TCPDump
  • Decoding network captures with Python
  • *.pcap files
  • *.pcap-ng files
  • Parsing network captures
  • Regular Expression Library

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

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