Course outline for Ansible

TechnologyAnsibleDuration * 2-3 Days LevelPrerequisites listed

About Ansible

Ansible is an open-source software provisioning, configuration management, and application-deployment tool. It runs on many Unix-like systems, and can configure both Unix-like systems as well as Microsoft Windows. It includes its own declarative language to describe system configuration. - Source: Wikipedia

Ansible Course Objectives

The objective of the training is to help learners understand declarative configuration management, with specific emphasis on Ansible. Learners will thoroughly learn how to build and use Ansible playbooks and roles, and also extend Ansible's abilities.

Pre-requisites

  • Participants must be comfortable in a Linux environment
  • Basic Knowledge of Python is essential for this course
  • Knowledge of system administration is preferred

Lab Setup

  • Hardware Configuration
    • 4GB of free RAM, 20GB of free disk space and full network connectivity
  • Software Configuration
    • Ubuntu 20.04/22.04 Desktop/Server Edition

How we train

Online training for Ansible

  • Instructor-led live cohorts
  • Self-paced learning with expert coaches
  • 24x7 cloud labs with end-to-end examples

All sessions are 100% hands-on. Labs and activities are derived from real-world work our engineers deliver.

Classroom training

Available for corporate teams in:

  • Bengaluru
  • Chennai
  • Hyderabad
  • Mumbai
  • Delhi/Gurgaon/NCR
  • Pune

Note: Classroom training is for corporate clients only.

Self-paced hands-on sessions are delivered via VirtualCoach.

Detailed Course Outline

Hands-on

Getting Started with Ansible

  • Understanding the need for Ansible
  • Installing Ansible
    • Control Machine setup
    • Managed Node setup
  • Ansible – Hello World
  • Setting up passwordless SSH access
  • Disabling Host key checking
  • YAML file format – introduction
  • Running ad-hoc commands in parallel
  • Use Cases of Ansible
    • Provisioning
    • Configuration Management
    • Application Deployment
    • Continuous Delivery
    • Security and Compliance
    • Orchestration

Inventory Management

  • Hosts and Groups
  • Group Variables
  • Groups of groups
  • Understanding the concept of Patterns in Ansible
  • Working with Dynamic Inventory
    • Case study of a popular dynamic inventory script

Working with Ansible Playbooks

  • Creating and executing a Playbook
  • Creating reusable playbooks
  • Facts
  • Understanding the concept of Roles
  • Ansible Galaxy
  • Variables
    • Special variables
  • Templating using Jinja2
    • Template filters
    • template module
  • Conditionals and Loops
  • Blocks and Strategies
  • Check Mode (Dry Run)
  • Playbook Debugger
  • Prompts
  • Start and Step

Working with Ansible Modules

  • Using existing modules in Ansible
    • command
    • raw
    • file
    • copy and fetch
    • replace
    • synchronize
    • Programming Language package modules – pip, npm etc
    • OS modules – apt, yum etc
    • Source control modules – git
    • cron
    • user, group
    • assert, debug, fail
    • set_fact
    • wait_for
  • Return values
  • Walk-through of some popular modules in Ansible
  • Writing your own module in Ansible

Introduction to Ansible Vault

  • Understanding the need for Ansible Vault
  • Managing encrypted files
  • Creating encrypted files
  • Editing encrypted files
  • Rekeying encrypted files
  • Decrypting encrypted files
  • Viewing encrypted files
  • Using encrypted variables in Ansible Playbooks
  • Vault Ids and Vault Passwords

Troubleshooting Ansible

  • Debugging playbooks
  • Working with verbosity levels

Ansible QA

  • Use of asserts, fails, check and diff
  • Unit testing Ansible modules
  • Use of lint tools

Command Line and Other Ansible Tools

  • ansible
  • ansible-playbook
  • ansible-vault
  • ansible-galaxy
  • ansible-console
  • ansible-config
  • ansible-doc
  • ansible-inventory
  • ansible-pull
  • AWX