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