Skip to main content
CourseFlix

Mastering Ansible

4h 47m 58s
English
Free

Mastering Ansible is a comprehensive guide designed for those keen to delve into configuration management and orchestration using Ansible. This course takes you on a step-by-step journey, building a realistic application stack from scratch, aligning with Ansible's core concepts, and integrating more complexity as the application evolves.

Course Overview

Instead of merely browsing through Ansible documentation, this course strategically orders topics to match the rising complexity of your application as you build and refactor it. The focus remains on crafting tools that help maintain and troubleshoot applications, aiming for a workflow where all configuration and troubleshooting is conducted via Ansible playbooks, allowing for repository commitment and future improvements.

Course Structure

The course unfolds across 6 sections:

  1. Initial installation and foundational concepts.
  2. Building a sample application environment layer-by-layer, learning a new concept in each lecture.
  3. Refactoring the setup with an emphasis on modularity and encapsulation.
  4. Optimizing code and reducing playbook execution time.
  5. Troubleshooting and testing final configurations.

Each lecture introduces a new Ansible concept, applied directly to your playbooks, featuring live demonstrations showing expected outputs. Lecture notes include links to relevant documentation and snapshots of the codebase by the lecture's end.

This course uses Ansible version 1.9.3 with a focus on a 3-tier web application environment, leveraging NGINX, Apache2, Python, and MySQL on Ubuntu Linux servers. Note that Windows server administration is not covered.

Perfect for beginners, the course also serves as an excellent resource for engineers interested in configuration management, orchestration, infrastructure-as-code, and DevOps principles.

Course Requirements

  • You should have a Linux or Mac OS X computer, or access to at least one Linux virtual machine for installing Ansible.
  • A code editor or IDE of your choice is needed.
  • A terminal and SSH client are necessary for running Ansible against target hosts.
  • Access to 5 Linux servers (bare-metal or virtual machines) is recommended to set up the course environment and follow along.

Target Audience

  • The course is geared towards students with minimal or no Ansible experience but a basic understanding of Linux systems administration.
  • No programming or prior automation experience is required.
  • If you're new to the Linux shell, you'll learn Ansible syntax, though understanding the underlying principles might be challenging. However, comprehensive explanations are provided for all system configurations.

What You'll Learn

  • Executing ad-hoc commands against servers using Ansible.
  • Writing Ansible configuration playbooks for deploying a 3-tier web application.
  • Configuring Ansible roles with tasks, handlers, files, templates, and default variables.
  • Creating operational playbooks to check cluster status and perform cluster restarts.
  • Optimizing Ansible playbooks to enhance execution efficiency.
  • Testing and troubleshooting Ansible playbook executions.

About the Author: udemy

udemy thumbnail

Udemy is a global online marketplace for teaching and learning. It connects students with instructors who share skills in many fields.

Who Uses Udemy

Millions of learners use Udemy to gain skills for work and personal growth. Companies, governments, and nonprofits also use Udemy to train their teams.

What Udemy Offers

Udemy provides a curated set of business and technical courses. These courses help teams build practical skills and support ongoing learning at work.

Watch Online 54 lessons

0:00 0:00
#Lesson TitleDuration
1Introduction 02:49
2Configuration Management & Orchestration 05:54
3Environment Setup 05:10
4Installation 03:05
5Inventory Pt 1 03:45
6Inventory Pt 2 04:54
7Host Selection 03:46
8Tasks 05:07
9Plays 04:36
10Playbook Execution Preview05:34
11Playbooks Introduction04:43
12Packages: apt 04:34
13Packages: become 04:08
14Packages: with_items 05:09
15Services: service 06:50
16Support Playbook 1 - Stack Restart 03:09
17Services: apache2_module, handlers, notify 05:40
18Files: copy 05:55
19Application Modules: pip03:12
20Files: file 05:28
21Files: template 06:32
22Files: lineinfile 06:50
23Application Modules: mysql_db, mysql_user 04:58
24Support Playbook 2 - Stack Status: wait_for 09:26
25Support Playbook 2 - Stack Status: uri, register, fail, when 11:11
26Playbooks Summary 03:14
27Roles Overview 04:42
28Converting to Roles: tasks, handlers 05:03
29Converting to Roles: files, templates 05:51
30Site.yml: include 03:00
31Variables: facts 06:10
32Variables: defaults 05:21
33Variables: vars 08:21
34Variables: with_dict 07:13
35Selective Removal: shell, register, with_items, when 05:46
36Variables - continued 06:26
37Variables: vars_files, group_vars 06:35
38Variables: vault 10:50
39External Roles & Galaxy04:42
40Advanced Execution Introduction 02:59
41Removing Unnecessary Steps: gather_facts 03:30
42Extracting Repetitive Tasks: cache_valid_time04:11
43Limiting Execution by Hosts: limit 02:41
44Limiting Execution by Tasks: tags 06:38
45Idempotence: changed_when, failed_when 06:24
46Accelerated Mode and Pipelining 04:44
47Troubleshooting Ordering Problems 05:48
48Jumping to Specific Tasks: list-tasks, step, start-at-task 04:01
49Retrying Failed Hosts 02:44
50Syntax-Check & Dry-Run: syntax-check, check 05:21
51Debugging: debug 04:19
52Authentication with SSH Keys 06:48
53A Brief Overview of YAML06:12
54A Brief Overview of Jinja205:59