Maxtrain.com - [email protected] - 513-322-8888 - 866-595-6863


Ansible Essentials


ansible_MAX technical Training


Ansible is growing in popularity for good reasons. It’s easy to understand, far simpler than Python, and extremely powerful. While Python can be used to do just about anything, Ansible is used to bring structure and consistency to system deployments, implementations, and changes. Students tempted to write a complex Python script to do a networking automation task will discover that problem is already solved by an Ansible module.



Lots of unnecessary Python scripts can be eliminated by using Ansible whenever possible. Ansible can be used for both network and server administrators alike.


Simple, agentless IT automation that anyone can use

Ansible is a universal language, unraveling the mystery of how work gets done. Turn tough tasks into repeatable playbooks. Roll out enterprise-wide protocols with the push of a button.

Ansible is a radically simple IT automation engine that automates cloud provisioningconfiguration managementapplication deploymentintra-service orchestration, and many other IT needs.

Designed for multi-tier deployments since day one, Ansible models your IT infrastructure by describing how all of your systems inter-relate, rather than just managing one system at a time.

It uses no agents and no additional custom security infrastructure, so it’s easy to deploy – and most importantly, it uses a very simple language (YAML, in the form of Ansible Playbooks) that allow you to describe your automation jobs in a way that approaches plain English.


Ansible works by connecting to your nodes and pushing out small programs, called “Ansible modules” to them. These programs are written to be resource models of the desired state of the system. Ansible then executes these modules (over SSH by default), and removes them when finished.

Your library of modules can reside on any machine, and there are no servers, daemons, or databases required. Typically you’ll work with your favorite terminal program, a text editor, and probably a version control system to keep track of changes to your content.


Day 1 (Ansible Introduction)

Module 1 - Ansible Introduction

  • Ansible definition
  • Exploring modules
  • Building a task
  • Places to define Ansible vars
  • Hosts aka "Inventory"
  • Creating a A play
  • Looking at the “handler”
  • Running a playbook
  • Introduction to YAML
  • Requirements for connecting to remote hosts

Module 2 - Installation

  • Configuration requirements on the control machine
  • Python requirements on the host
  • Using ansible raw to install Python

Module 3 - Ansible config file and directory structure

  • ansible.cfg
  • Ansible Inventory
  • roles

Module 4 - Ansible Static Inventory

  • Defining Hosts and Groups
  • Host and Group variables
  • Groups of Groups
  • Default Groups

Module 5 - YAML

  • YAML Gotchas
  • YAML Dictionary
  • YAML list
  • YAML list of dictionaries
  • YAML Alternate format
  • Relationship to JSON

Day 2 (Ansible for Server Operations)

Module 6 - Ansible Ad hoc commands

  • Ad hoc command syntax
  • Parallel Shell commands
  • Managing packages
  • Managing users and groups
  • Gathering facts
  • ad hoc cheat sheet

Module 7 - Writing a Simple Playbook

  • Elements of a well written playbook
  • A well-written Ansible play
  • Using include files for tasks
  • A well-written ansible variable file
  • A well-written ansible inventory file

Module 8 - Ansible config file and directory structure

  • ansible.cfg
  • Best practices concerning directory structures and organization
  • Host Inventory and ansible_vars
  • Introduction to roles

Module 9 - Key Server Modules to Know

  • Understanding modules documentation
  • setup / gather_facts
  • copy
  • apt / yum / pip
  • command / shell
  • git
  • get_url
  • debug
  • lineinfile

Day 3 (Ansible for Network Operations)

Module 10 - Ansible and Jinja

  • What is Jinja2?
  • jinja variables
  • jinja filters
  • jinja tests
  • How to use ansible template
  • Review of the ansible template documentation

Module 11 - Conditional and Looping Tasks

  • Variables and Loops
  • Using Complex Variables in Loops
  • Variables and Templates
  • Using variables in conditions
  • Blocks
  • Prompts
  • Getting variables from the system
  • Setting variables in playbooks
  • registered variables
  • Getting variables from the command line
  • Where is the best source to derive variables values?

Module 12 - Ansible Network Solutions with Ansible (focus on Juniper and Cisco)

  • Writing Cisco and Juniper playbooks
  • Modules for Cisco (IOS, NXOS, IOSXR, etc)
  • Exploring Juniper solutions
  • Built in Juniper modules
  • Role based Juniper modules
  • Installing a module from Juniper vendor
  • Securing credentials / best practices
  • New additions within the latest version of Ansible (v2.9)

Day 4 (Customizing Ansible & Ansible for Cloud)

Module 13 - Dynamic Inventory Management

  • What is Dynamic Inventory?
  • A review of static Inventory Practices
  • Using JSON as an Inventory Source
  • Using YAML as an Inventory Source
  • Pulling Inventory from an API
  • AWS EC2 Example
  • OpenStack Example

Module 14 - Ansible for OpenStack and AWS

  • Overview of OpenStack
  • Understanding the OpenStack client
  • What is openstack-sdk (or shade)?
  • clouds.yaml
  • Installing openstack-sdk
  • Using openstack-sdk
  • OpenStack modules
  • os_network
  • os_subnet
  • os_router
  • os_server
  • os_server_action
  • os_security_group_rule
  • What is boto?
  • Installing boto for AWS
  • AWS modules
  • ec2
  • aws_s3_bucket_info
  • redshift

Module 15 - Variables and Python

  • Jinja Filters for variable manipulation
  • Using Python within playbooks for variable manipulation
  • Best practices for Variables
  • Securing credentials with Ansible Vault
  • Encrypting Playbooks with Ansible Vault

Day 5 (Ansible Playbook Design & Review)

Module 16 - Roles and Ansible Galaxy

  • Why we need Ansible Roles
  • Role Directory Structure
  • Using Roles
  • Role default variables
  • Converting a Playbook to a Role
  • Exploring Ansible Galaxy
  • Running a role from Ansible Galaxy

Module 17 - Playbook Best Practices

  • Directory Layout
  • Use Dynamic Inventory With Clouds
  • How to Differentiate Staging vs Production
  • Group And Host Variables
  • Top Level Playbooks Are Separated By Server Type

Module 18 - Ansible Tower / AWX Essentials

  • What is Ansible Tower and AWX
  • Why you should consider using Jenkins as a replacement for Ansible Tower
  • Pushing and pulling playbooks from GitHub


1. SSH client and server configs
2. RSA key gen
3. Methods for Installing Ansible
4. Ansible Host Inventory
5. Ad-Hoc Modules and Gather Facts
6. Elevated Ad-Hoc Commands
7. Running your first Playbook
8. Ad-Hoc Raw Commands
9. Debug, Loops, and YAML Lists
10. When Conditionals, YAML Dictionaries, and Jinja
11. ansible.cfg setup
12. Building Playbooks - Bootstrap with raw, group and user Modules
13. Mapping YAML Vars Files in Playbooks
14. Ansible Modules - shell
15. Ansible Module - copy
16. Ansible Module - apt
17. Ansible Module - yum
18. Ansible Module - get_url
19. Ansible Module - file
20. Ansible Module - git
21. Ansible Module - template
22. Playbook Tags
23. Ansible Module - lineinfile and replace
24. Manually Launch an OpenStack Instance
25. OpenStack, Ansible and Shade
26. YAML, JSON, Dynamic, and Cloud Inventories
27. Configuring a Web Service with Ansible
28. Ansible Handlers
29. Ansible Error Handling
30. pre_tasks, roles, tasks, post_tasks, and handlers
31. Exploring Switches with Ansible
32. network_cli Playbook
33. Backup and Save Config - Cisco, Juniper, Arista, and Many More!
34. Network Playbooks and Vendor Specific Modules
35. Simplifying Network Playbooks with Agnostic Modules
36. Reading Variables into Playbooks
37. Ansible script module
38. Ansible Lookup Plugin
39. Ansible Playbook Output Logging
40. Ansible Keywords - register and when
41. Ansible Galaxy
42. Ansible Vault
43. Ansible Tower
44. (Optional Case Study) Ansible for Palo Alto PanOS and Panorama
45. (Optional Case Study) Ansible for Juniper Junos Core and Role Modules
46. (Optional Case Study) Ansible for VMWare NSX Networking
47. (Optional Case Study) Ansible NAPALM for Network Automation


  • Coding experience in another language serves as an adequate prerequisite 


  • System administrators, network engineers, developers, cloud administrators and network administrators will find this course compelling.

5 Days Course

Class Dates

Good to Run
Remote Live

This class runs from 10:00 AM to 06:00 PM EST

Loading ...