Duration
6.5 hours
Added On
6/30/2025
Expires On
7/5/2025
Course ID
19281
This offer is time-limited and may expire soon
Welcome to RedHat Automation with Ansible – RHEL 9 (RH294).
If you’re a system administrator, DevOps engineer, or just someone who wants to automate Linux-based tasks, this course is your complete guide to learning Ansible — one of the most powerful tools in IT automation.
Here’s what you’ll learn:
Ansible Setup in AWS Environment
Getting Started with This Section
Set Up an EC2 Instance as an Ansible Control Node
Install Ansible on Control Node
Set Up Two Client Machines as Managed Nodes
Enable SSH communication
Add Same User to All Machines
Generate SSH Key for Password-Free Access
Create Host Group in Inventory File
Test Connection Using Ad-Hoc Commands
Guided Exercise – 1
Guided Exercise – 2
Mastering Ansible Inventory and ansible-navigator: A Step-by-Step guide
Getting Started with This Section
Understanding Ansible Inventory
Static vs Dynamic Inventory in Ansible
How to Add Host Entries in Inventory
Adding Hosts with Custom Ports and Users
Using Host Ranges in Ansible Inventory
Getting Started with Ansible Navigator: Installation, Modes, and Usage
Ansible Navigator: Quick Overview
Navigator Modes Explained: Run, Inventory, Collections & More
ansible-navigator vs ansible-playbook: Key Differences
Installing ansible-navigator
Setting Up ansible-navigator
View Inventory with ansible-navigator (stdout mode)
Explore Inventory in TUI Mode Using ansible-navigator
Managing Ansible Configuration Files
Configuring Ansible Basics
Setting Up User-Specific Ansible Configuration
Defining Inventory File Path in Ansible Config
Working with ansible-navigator Configuration File
Ansible Navigator – Scenario Based Guided Lab
Getting Started with this Section
Hands-On Lab 1
Hands-On Lab 2
Hands-On Lab 3
Hands-On Lab 4
Implementing an Ansible Playbook
Getting Started with this Section
What is an Ansible Playbook
Ansible Playbook Syntax and Formatting
Lab Exercise: Creating Your First Ansible Playbook
Lab Exercise: Run Playbook Using Ansible Navigator
Lab Exercise: Ansible Navigator with EE Enabled
Lab Exercise: Directory Creation Using Playbook
Ansible Variable and Facts
Getting Started with this Section
Introduction to Ansible Variables
Valid and Invalid Variable Names
Defining Group Variables in Ansible Inventory
Defining Group Variables via group_vars
Defining Host Variables
Defining Variables in Ansible Playbooks
Overriding Variables with ansible playbook
Overriding Variables with ansible-navigator
Use Dictionaries as Variables in Ansible
Hands-On: Use Dictionaries
Capturing Output with Registered Variables
Hands-On: Capturing Output with register
Managing Secrets in Ansible
Introduction to Ansible Vault and Secret Storage
Ansible Vault: File Encryption
Ansible Vault: Using Password Files for Encryption
Ansible Vault: Modify Encrypted Files
Hands-On 1: Secure User Creation with Ansible Vault
Hands-On 2: Secure User Creation with Ansible Vault
Hands-On 3: Secure User Creation with Ansible Vault
Hands-On 4: Secure User Creation with Ansible Vault
Hands-On 5: Secure User Creation with Ansible Vault
Task Control Implementation in Ansible
Getting Started with this Section
Task Iteration with Loops in Ansible
Hands-On: Installing Multiple Packages Using Loops
Loop with a Variable List
Hands-On: Iterating Variable Lists with Loops
Ansible Loops with List of Dictionaries
Hands-On 1: Looping Through Dictionary Lists
Hands-On 2: Looping Through Dictionary Lists
Earlier-style Loop Keywords: with_items, with_dict etc
Hands-On 1: Register with Loop in Ansible
Hands-On 2: Register with Loop in Ansible
Implementing Conditional Task Control
Running Tasks Conditionally
Hands-On: Install Apache Only if RAM > 2GB
Hands-On: Run Task Only if OS is Debian
Hands-On: Run Task When web_enabled is True
Hands-On: Run Task if RAM > 2GB AND OS is CentOS
Hands-On: Run Task if OS is Ubuntu OR Debian
Deploying Files to Managed Hosts
Describing File Modules
Hands-On: Create a Directory
Hands-On: Copy a File to Remote
Hands-On: Fetch File From Remote to Local
Hands-On: Insert Line Using lineinfile Module
Hands-On: Insert Config Block Using blockinfile Module
Deploying Custom files with Jinja2 Templates
Introduction to Jinja Templating in Ansible
Control Structures with Loops and Variables
Hands-On: Control Structures
Using Ansible Facts in Jinja2 Templates
Guided Exercise – 1
Guided Exercise – 2
Guided Exercise – 3
Managing Complex Plays and Playbooks
Selecting Hosts with Host Patterns
Hands-On: Defining Ansible Host Patterns
Hands-On: Defining Ansible Host Patterns
Including and Importing Files
Include vs Import in Ansible
Import_playbook in Ansible
Hands-On 1: Include and Import Files – Apache Setup
Hands-On 2: Include and Import Files – Apache Setup
Hands-On 3: Include and Import Files – Apache Setup
Guided Exercise: Apache Web Server Automation
Overview of the Project
Hands-On Practice 1
Hands-On Practice 2
Modular Playbook Design with Roles and Collections
Describing Role Structure
Hands-On Project: Automate Server Hardening
Hands-On: Roles for User and Timezone Setup
Hands-On: Role for Firewall Custom Port Access
Hands-On: Role for SSH Configuration
Hands-On: Use Roles in a Playbook
Hands-On: Execute the Playbook
Hands-On: Verify Changes on Client Node
Using External Ansible Roles from Ansible Galaxy
Overview: Using External Roles from Galaxy
Hands-On: Install External Role geerlingguy.nginx
Hands-On: Create a Playbook with External Role
Hands-On: Run Playbook with ansible-playbook
Hands-On: Run Playbook with ansible-navigator
Troubleshooting in Ansible: Debugging and Error Handling
Analyzing Ansible Log Files
Using the debug Module for Troubleshooting
Handling Errors Gracefully in Ansible
Debugging Techniques in Ansible
Using check_mode to Test Playbook Execution
Last Lecture