logo

Cisco Automation Course

course overview

View dates & book now

Audience

Engineers looking to gain a broad overview of the skills required to become a next-generation engineer with the ability to program and automate the networks of the future

Skills Gained

After completing this course you should be able to:

  • Articulate the role network automation and programmability play in the context of end-to-end network management and operations
  • 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 API calls to network devices
  • Articulate the differences among and common use cases for XML, JSON, YAML, and 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 a number of 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
  • Describe the functionality of available Cisco Ansible modules and integrations
  • Comprehend the breadth and depth of APIs across Cisco technologies and the value APIs provide to enhanced network automations

Prerequisites

Attendees should meet the following prerequisites:

  • 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

Outline

Examining Network Management and Operations

  • Traditional Network Management
  • Network Automation and Programmability
  • Network Automation Use Cases
  • Multidomain Network Automation

Exploring Software Development Methodologies

  • Impact of Software
  • Waterfall Development Process
  • Agile Methodology

Using Python for Network Automation

  • Python Fundamentals
  • Network Libraries
  • Python Package Management
  • Netmiko
  • Inside Python Modules

Describing NetDevOps: DevOps for Networking

  • Development and Operations
  • Exploring DevOps Tools
  • Git Fundamentals
  • Git Branches
  • Merge Conflicts
  • Continuous Integration

Managing Automation Development Environments

  • Need for Reproducible Development Environments
  • Python Virtual Environments
  • Vagrant
  • Docker

Introducing HTTP Network APIs

  • API Overview
  • HTTP-Based APIs
  • RESTful APIs vs Non-RESTful APIs
  • HTTP-Based Authentication
  • Postman
  • Streaming Telemetry

Reviewing Data Formats and Data Encoding

  • JavaScript Object Notation
  • gRPC and Protobuf
  • YAML Data Serialization Standard

Using Python Requests to Automate HTTP-Based APIs

  • Python Requests Overview
  • HTTP Authentication

Exploring YANG

  • Introduction to YANG
  • Types of YANG Models

Using YANG Tools

  • YANG Tool Types
  • Pyang
  • YANG Explorer

Automating Model-Driven APIs with Python

  • NETCONF Overview
  • Python ncclient
  • RESTCONF Overview

Introducing Ansible for Network Automation

  • Configuration Management Tools
  • Introduction to Ansibile
  • Ansible Inventory File
  • Use the Cisco IOS Core Configuration Module
  • Ansible Documentation
  • Gather Cisco IOS Device Facts
  • Use the Cisco IOS Core Command Module

Templating Configurations with Jinja2

  • Jinja2 Overview
  • Basic YAML
  • Configuartion Templating with Ansible

Labs

  • Use Network Automation Scripts
  • Enforce Python Fundamentals on the Interactive Interpreter
  • Automate Networks with Netmiko
  • Troubleshoot Python Scripts
  • Use the Git Version-Control System
  • Collaborate on an Internal Project
  • Manage Merge Conflicts
  • 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 NETCONF with Python
  • Explore RESTCONF with Python
  • Configure Network Devices with Ansible
  • Collect Network Data with Ansible
  • Build and Deploy Configurations with Ansible
  • Explore Ansible Documentation

Talk to an expert

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. Its a cost effective option. One on one training can be delivered too, at reasonable rates.

Submit an enquiry from any page on this site, and let us know you are interested in the requirements box, or simply mention it when we contact you.

All $ prices are in USD unless it’s a NZ or AU date

SPVC = Self Paced Virtual Class

LVC = Live Virtual Class

Please Note: All courses are availaible as Live Virtual Classes

Trusted by over 1/2 million students in 15 countries

Our clients have included prestigious national organisations such as Oxford University Press, multi-national private corporations such as JP Morgan and HSBC, as well as public sector institutions such as the Department of Defence and the Department of Health.