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