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
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-onGetting 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