Network Programming and Administration Using Python
In this course you will learn to
- Learn Python programming skills to write programs that manage and configure network devices
- Write robust code for multi-tasking and multi-threaded operations
- Install and use Paramiko, Netmiko, and NAPALM capabilities for managing and configuring network devices
- Acquire network device information
- Automate changes to network device configurations
Training materials
All Python training students will receive comprehensive courseware.
Suggested attendees
Systems and/or network administrators/engineers/technicians with some experience with fundamental Linux utilities and commands. Python programming experience and working knowledge of a vendor-specific network device (CLI) are useful, but not essential.
Course Outline
- Introduce Python data types and operations
- Python program layout
- Execute a Python program
- Scalar variables and operations
- Tuple and list array variables and operations
- Dictionary variables and operations
- Function creation and calling
- Multi-tasking and multi-threading TCP/IP client/server Python programs
- Python multi-tasking server
- Avoid zombie processes from a multi-tasking server
- Python network client
- Python multi-threading server
- Avoid zombie threads from a multi-threading server
- Create a daemon (server) process in Python
- Implement a daemon-based multi-tasking or multi-threading server
- Obtain network information and configure network devices (Netmiko)
- ParamikoSSH capabilities overview
- Obtain and install the Paramiko SSH library
- Initial connection to a network device via the SSH connect method
- Send and receive network device information via Paramiko SSH methods
- Required setup for accessing network devices
- Resource requirements for an accessible network device
- EVE-NG setup for network device emulation overview
- Obtain network information and configure network devices (Paramiko)
- ParamikoSSH capabilities overview
- Obtain and install the Paramiko SSH library
- Initial connection to a network device via the SSH connect method
- Send and receive network device information via Paramiko SSH methods
- Obtain network information and configure network devices
- NAPALM (Network Automation and Programmability Abstraction Layer) overview
- Obtain and install the NAPALM library on Linux
- NAPALM common API interface to establish a connection to a network device
- Basic retrieval of state data from a network device
- Load, replace, merge and commit configuration changes
- Roll back committed changes
- Ansible modules to drive NAPALM actions
No software needs to be installed for this class. The class will be conducted in a remote environment. Students need a local computer with a web browser (recent version of Microsoft Edge, Mozilla Firefox or Google Chrome) and a stable Internet connection.