Articulate the role network automation and programmability play in the context of end-to-end network management and operations
Define and differentiate between waterfall and agile software development methodologies
Interpret and troubleshoot Python scripts with fundamental programming constructs built for network automation use cases
Describe how DevOps principles, tools, and pipelines can be applied to network operations
Understand the role of network automation development environments and associated technologies such as Python virtual environments, Vagrant, and Docker
Understand and construct HTTP-based application programming interface (API) calls to network devices
Articulate the differences among and common use cases for XML, JSON, YAML, and protocol buffer (protobuf)
Construct and interpret Python scripts using the Python requests module to automate devices that have HTTP-based APIs
Understand the role YANG plays in network automation
Understand that several tools exist to simplify working with YANG models
Describe the functionality of RESTCONF and NETCONF and the differences between them
Construct Ansible playbooks to configure network devices and retrieve operational state data from them
Build Jinja2 templates and YAML data structures to generate desired state configurations
Course Prerequisites
There are no prerequisites for this training. However, the knowledge and skills you are recommended to have before attending this training are:
Routing and switching including open shortest path first (OSPF), border gateway protocol (BGP), and basic configuration features such as interfaces, simple network management protocol (SNMP), and static routes
Fundamentals of Python data structures and programming constructs, such as loops, conditionals, and classes, or the equivalent of 3–6 months of experience writing Python scripts
Basic Linux commands for navigating the file system and executing scripts
Knowledge of working with text editors
The following recommended Cisco offering may help you meet these prerequisites:
Implementing and Administrating Cisco Solutions (CCNA)
Course Outline
Examining Network Management and Operations
Exploring Software Development Methodologies
Using Python for Network Automation
Describing NetDevOps: DevOps for Networking
Managing Automation Development Environments
Introducing HTTP Network APIs
Reviewing Data Formats and Data Encoding
Using Python Requests to Automate HTTP-Based APIs
Exploring YANG
Using YANG Tools
Automating Model-Driven APIs with Python
Introducing Ansible for Network Automation
Templating Configurations with Jinja2
Lab Outline
Use Network Automation Scripts
Enforce Python Fundamentals on the Interactive Interpreter
Automate Networks with Netmiko
Use the Git Version-Control System and Collaborate on an Internal Project
Build Reproduceable Automation Environments
Use HTTP-Based APIs with Postman
Explore YAML and JSON Data
Consume HTTP-Based APIs with Python Requests
Explore YANG Tools
Explore RESTCONF with Python
Explore NETCONF with Python
Configure Network Devices with Ansible
Collect Network Data with Ansible
Build and Deploy Configurations with Ansible