Network Automation with Ansible

Overview

In this 3 day course, you will learn about foundational skills as they pertain to network automation with Ansible. The network industry is in the midst of change, and one part of that is the operational models and technologies used to manage and operate networks on a day to day basis. For over 20 years, the CLI has been the primary means to manage networks. Going forward, network engineers will be using platforms such as Ansible due to its low barrier to entry.

This course covers the skills needed to get a jump start with Ansible for Network Automation covering data types, data models, and then in depth look at Ansible. Everything in this course is 100% focused on using Ansible ot manage network infrastructure.

Note: This is a three (3) day course.

Prerequisites

While there are no programming, software/dev, or automation prerequisites, students should have:

  • Good grasp on networking concepts such as device configuration of interfaces, VLAN, OSPF, and BGP.
  • Basic understanding of using a Linux terminal.
  • Aware of how to use a text editor: SublimeText, nano, vi/vim, notepad++

Course Summary

Module 1 – Data Types, Data Formats, and Encoding

Module 2 – Using Ansible for Network Automation

Course Outline

Module 1 – Data Types, Data Formats, and Encoding

  • Strings
  • Integers
  • Lists
  • Dictionaries
  • Complex Nested Objects
  • JSON
  • YAML

 

Module 2 – Using Ansible for Network Automation

At this point in the course, you’ll understand data types, encoding formats, and APIs, and how to write super useful Python scripts automating the network.  In this module, you’ll build on that knowledge first learning all about YAML and see how Ansible can be used to even further simplify your life providing an even faster means of getting started with network automation.  This module covers the use of Jinja2 within Ansible for configuration templates as well as 2.5 more days of just using Ansible for network automation.

  • YAML Review
  • Ansible Overview
  • Terminology
  • Variable Management
  • Introduction to Jinja2 Templating
  • Device Templating with Jinja2 + Ansible
  • Declarative Configuration Management with NAPALM + Ansible
  • Deeper dive into Ansible (conditionals, iterators, register, variables, check mode, etc.)
  • Using Vendor Specific Modules (Cisco NXOS and Juniper Junos Ansible modules)
  • Ansible Core Modules for issuing show commands and making configuration changes
  • OS Management with Ansible and ntc-ansible (copying files, upgrades, reboots)
  • Roles – Creating Network Abstractions
  • Automating Data Gathering & Documentation
  • Dynamic Inventory Scripts

 

Major Points:

  • Class hours still start at 9am and run until about 5:00pm.  Final day usually ends a few hours earlier.
  • This course will use a combination of the following device types: Cisco NX-OS, Cisco IOS, Arista EOS, Junos,
  • Each student will have their own dedicated pod with at least 8 network devices
  • Private courses available upon request.
  • This course has over 50% hands-on labs