Master RedHat Ansible on RHEL 9 with real-world hands-on tasks. Perfect for sysadmins, DevOps, and RH294 exam prep.
Welcome to RedHat Automation with Ansible – RHEL 9 (RH294).
What you’ll learn
- Set up Ansible control and managed nodes on AWS using RHEL 9..
- Install and configure Ansible along with ansible-navigator for efficient automation..
- Understand and manage Ansible inventories — both static and dynamic..
- Write and execute Ansible playbooks using best practices..
- Use Ansible variables, facts, dictionaries, and register modules to build dynamic automations..
- Encrypt sensitive data with Ansible Vault and manage secrets securely..
- Implement task control logic using loops, conditionals, and handlers..
- Deploy files and configurations using Ansible modules and Jinja2 templates..
- Modularize playbooks with include, import_playbook, and use advanced host pattern matching..
- Troubleshoot playbooks using debug, check_mode, and analyze logs for better error handling..
- Modular Playbook Design with Roles and Collections.
- Using External Ansible Roles from Ansible Galaxy.
Course Content
- Introduction –> 1 lecture • 4min.
- Ansible Setup in AWS Environment –> 11 lectures • 33min.
- Mastering Ansible Inventory and ansible-navigator: A Step-by-Step guide –> 6 lectures • 14min.
- Getting Started with Ansible Navigator: Installation, Modes, and Usage –> 7 lectures • 18min.
- Managing Ansible Configuration Files –> 4 lectures • 12min.
- Ansible Navigator – Scenario Based Guided Lab –> 5 lectures • 14min.
- Implementing an Ansible Playbook –> 7 lectures • 23min.
- Ansible Variable and Facts –> 13 lectures • 37min.
- Managing Secrets in Ansible –> 9 lectures • 18min.
- Task Control Implementation in Ansible –> 11 lectures • 28min.
- Implementing Conditional Task Control –> 6 lectures • 13min.
- Deploying Files to Managed Hosts –> 6 lectures • 16min.
- Deploying Custom files with Jinja2 Templates –> 7 lectures • 54min.
- Managing Complex Plays and Playbooks –> 9 lectures • 22min.
- Guided Exercise: Apache Web Server Automation –> 3 lectures • 12min.
- Modular Playbook Design with Roles and Collections –> 8 lectures • 27min.
- Using External Ansible Roles from Ansible Galaxy –> 5 lectures • 9min.
- Troubleshooting in Ansible: Debugging and Error Handling –> 6 lectures • 23min.
Requirements
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