# KodeKloud: Beta Courses Ansible Advanced Course

## Ansible Advanced Course

### Introduction

- [Course Introduction](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Introduction/Course-Introduction/page.md): This course enhances Ansible skills through lectures, labs, and real-world projects, focusing on automation, playbooks, and best practices.
- [Course Pre Requisites](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Introduction/Course-Pre-Requisites/page.md): This article outlines the prerequisites for a course on Ansible, emphasizing prior knowledge of Ansible and Linux systems.

### Core Components

- [Core Components Introduction](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Core-Components/Core-Components-Introduction/page.md): This article explores the core components of our system, focusing on facts and configuration files.
- [Playbook run options](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Core-Components/Playbook-run-options/page.md): This guide explores options for executing Ansible playbooks, including dry runs, starting at specific tasks, and using tags for task management.
- [Lab Introduction Demo](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Core-Components/Lab-Introduction-Demo/page.md): This article demonstrates the operation of Ansible hands-on labs on KodeKloud, including lab interface, tasks, and quiz questions.
- [Facts](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Core-Components/Facts/page.md): This article provides an overview of Ansible facts, detailing how they are collected and utilized during playbook execution.
- [Configuration files](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Core-Components/Configuration-files/page.md): This lesson explores Ansible configuration files and their impact on Ansible's behavior, including overriding settings and using environment variables.

### Install and Configure

- [Install required packages create static host inventory file create config file](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Install-and-Configure/Install-required-packages-create-static-host-inventory-file-create-config-file/page.md): Learn to install Ansible, create a static host inventory file, and configure Ansible with a custom configuration file.
- [Create and distribute SSH keys to managed nodes](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Install-and-Configure/Create-and-distribute-SSH-keys-to-managed-nodes/page.md): Learn to create a static inventory hosts file and configure SSH key-based authentication for managed nodes in Ansible environments.
- [Validate a working configuration using ad hoc Ansible commands](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Install-and-Configure/Validate-a-working-configuration-using-ad-hoc-Ansible-commands/page.md): Learn to run ad hoc commands with Ansible for quick testing, verifying connectivity, and gathering information from multiple servers.
- [Create simple shell scripts that run ad hoc Ansible commands](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Install-and-Configure/Create-simple-shell-scripts-that-run-ad-hoc-Ansible-commands/page.md): Learn to create shell scripts that automate ad-hoc Ansible commands for efficient task execution and consistent environment setup.
- [Privilege Escalation](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Install-and-Configure/Privilege-Escalation/page.md): Learn to configure privilege escalation on managed nodes using Ansible for elevated permissions to perform system tasks.
- [Frequently Asked Questions](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Install-and-Configure/Frequently-Asked-Questions/page.md): This article addresses common questions about YAML syntax and Ansible playbooks, including Boolean values, document markers, variable interpolation, and SSH connection variables.

### Ansible Modules

- [Additional Modules](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Ansible-Modules/Additional-Modules/page.md): This article introduces additional Ansible modules to extend automation capabilities and provides hands-on examples for practical understanding.
- [Project Introduction](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Ansible-Modules/Project-Introduction/page.md): This article introduces a project to develop Ansible playbooks for deploying a fictional ecommerce website using a LAMP stack architecture.
- [Project Demo](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Ansible-Modules/Project-Demo/page.md): This article demonstrates manual deployment of the KodeKloud ecommerce application on a CentOS machine without automation tools.

### Variables and Jinja2

- [Variable Precedence](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Variables-and-Jinja2/Variable-Precedence/page.md): This article explains variable precedence in Ansible, detailing how values are determined when variables are defined in multiple locations.
- [Variable Scope](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Variables-and-Jinja2/Variable-Scope/page.md): This article explores variable scope in Ansible, detailing how variable definitions affect their accessibility across hosts and plays.
- [Use variables to retrieve the results of running commands](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Variables-and-Jinja2/Use-variables-to-retrieve-the-results-of-running-commands/page.md): Learn to capture and reuse command output in Ansible playbooks using the register directive for improved automation and task management.
- [Magic Variables](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Variables-and-Jinja2/Magic-Variables/page.md): This article explores how magic variables in Ansible simplify accessing variables across hosts and enhance playbook functionality.
- [Jinja2 Basics](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Variables-and-Jinja2/Jinja2-Basics/page.md): Introduction to Jinja2 templating basics, syntax, filters, and practical examples for generating HTML, configuration files, and Ansible templates
- [Jinja2 in Ansible](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Variables-and-Jinja2/Jinja2-in-Ansible/page.md): This article focuses on how Ansible enhances Jinja2 with custom filters for managing infrastructure tasks.
- [Create and use templates to create customized configuration files](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Variables-and-Jinja2/Create-and-use-templates-to-create-customized-configuration-files/page.md): Learn to use Jinja2 templates in Ansible for dynamically generating configuration files for web servers.

### Include and Roles

- [Ansible File Separation](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Include-and-Roles/Ansible-File-Separation/page.md): Learn to separate variables from Ansible inventory files for better maintenance and organization using dedicated YAML files for host-specific and group variables.
- [Ansible Roles](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Include-and-Roles/Ansible-Roles/page.md): This article explains Ansible roles, their organization, reusability, and how to create and manage them for automation tasks.

### Other Topics

- [Ansible Vault](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Other-Topics/Ansible-Vault/page.md): This guide explains how to protect sensitive data in Ansible projects using Ansible Vault for encryption.
- [Dynamic Inventory](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Other-Topics/Dynamic-Inventory/page.md): This article explores dynamic inventory files in Ansible, comparing them with static inventories and detailing their benefits and implementation.

### Playbook Flow

- [Use conditionals to control play execution](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Playbook-Flow/Use-conditionals-to-control-play-execution/page.md): This article explores using conditionals in Ansible to control task execution based on operating systems and dynamic factors, consolidating playbooks for efficiency.
- [Blocks](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Playbook-Flow/Blocks/page.md): This article explains how to use blocks in Ansible for task configuration, grouping, and error handling.
- [Configure error handling](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Playbook-Flow/Configure-error-handling/page.md): This article explores error handling in Ansible, focusing on managing task failures during playbook execution for single and multiple server deployments.
- [Manage parallelism](https://notes.kodekloud.com/docs/Ansible-Advanced-Course/Playbook-Flow/Manage-parallelism/page.md): This article explores strategies in Ansible for executing playbooks efficiently, focusing on task execution across hosts and managing parallelism.
