Course outline for Ansible

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 for learning Ansible

  • 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

Duration

  • 2-3 Days

Training Mode

Online training for Ansible

We provide:

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

All jnaapti sessions are 100% hands-on. All our instructors are engineers by heart. Activities are derived from real-life problems faced by our expert faculty. Self-paced hands-on sessions are delivered via Virtual Coach.

Classroom training for Ansible

Classroom sessions are conducted in client locations in:

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

Note: Classroom training is for corporate clients only

Detailed Course Outline for Ansible

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