Ultimate Ansible Bootcamp

Tags: Ansible

Unofficial Guide to EX407 Redhat Certified Specialist in Ansible Automation

Last updated 2022-01-10 | 4.6

- What is ansible
- why its needed and how it works
- How to configure ansible and setup static/dynamic inventories
- Ad hoc server management
- running jobs in parallel

What you'll learn

What is ansible
why its needed and how it works
How to configure ansible and setup static/dynamic inventories
Ad hoc server management
running jobs in parallel
Managing systems entities using ansible Modules
Writing Playbooks to define the state of infrastructure as a code
Creating modular
reusable code with Roles
Creating dynmic code with vars and templates
Using Ansible Galaxy
Encrypting sensitive data with Vault
Service Discovery and managing Multiple Environments
Application Deployment Strategies
Rolling Updates

* Requirements

* Basic Linux Operations and CLI
* A laptop or a desktop with a Web Browser
* Docker Envrionment or a Cloud Account
* Terminal software e.g. iterm
* bash
* conemu

Description

  • What is ansible, why its needed and how it works
  • How to configure ansible and setup static/dynamic inventories
  • Ad hoc server management, running jobs in parallel
  • Managing systems entities using ansible Modules
  • Writing Playbooks to define the state of infrastructure as a code
  • Creating modular, reusable code with Roles
  • Creating dynmic code with vars and templates
  • Using Ansible Galaxy
  • Encrypting sensitive data with Vault
  • Service Discovery and managing Multiple Environments
  • Application Deployment Strategies, Rolling Updates

Course content

14 sections • 125 lectures

Know your Instructor - Who is Gourav Shah ? Preview 03:51

How to Navigate this course Preview 04:10

EX407: Red Hat Certified Specialist in Ansible Automation Preview 05:55

Have Question, Find Help and Support Preview 03:43

Important Resources for this Course Preview 00:16

What is Ansible Part I: Why Ansible ? Preview 05:45

What is Ansible Part II: Simplicity, YAML, Push Model, Custom Modules Preview 05:41

What is Ansible Part III: Batteries Included Approach Preview 04:28

Web Quest AWQ001 - Explore Ansible Batteries - Modules

This is a web quest. The purpose of this exercise is for you to get into the habit of active self learning. You would be given reading resources to get started learning about the topic. You are encouraged to research on your own as well. Questions presented would help you direct your research.

What is Ansible Part IV: Infrastructure as a Code Preview 06:10

What is Ansible Part V: Code vs Data Preview 04:38

What is Ansible Part VI: Idempotence and State Management Preview 06:10

What is Ansible Part VIII: The Ansible Story Preview 04:29

Test your knowledge

This is a quiz to test your conceptual understanding on what is Ansible, why do we need it and what are the key features of it.

Web Quest AWQ002 - Relevance of Ansible in the world of Docker and Kubernetes

The purpose of this web quest is for you to start thinking about the role of Ansible with the changing dynamics in the world of software delivery with the introduction to kubernetes and docker.

Section Introduction Preview 01:17

Introduction to codespaces Preview 05:55

Setting up codespaces locally with docker Preview 07:42

LAB 1: Setting up a codespaces environment with Docker Preview 01:12

Launching codespaces on digital ocean cloud Preview 04:48

Managing codespaces Preview 07:51

Section Introduction Preview 00:51

Tasks, Modules, Roles Preview 06:45

Inventories and Playbooks Preview 05:11

Book Recommendation: Ansible Playbook Essentials Preview 01:08

Code Organization Strategies Preview 04:27

Introducing Use Case - Devops Demo App Preview 04:02

Approach to automate Devops Demo App Preview 04:41

Section Introduction Preview 01:33

Configuring Ansible Preview 06:24

LAB 1: Adding Ansible Configs Preview 00:28

Defining a static Inventory Preview 05:50

LAB 2: Creating Host Inventory Preview 01:15

Host Patterns and Ad Hoc Commands Preview 08:53

LAB 3: Ad Hoc commands Preview 01:51

Modules and Desired State Configuration Preview 04:59

LAB 4: Using modules to manage the state of infrastructure Preview 00:47

Invoking Modules, Idempotence Preview 06:00

Using common modules Preview 07:33

Command Modules and Idempotence Preview 07:43

Using ansible-console REPL Shell Preview 03:56

Section Introduction Preview 01:07

YAML Primer Preview 05:19

Anatomy of a Playbook Preview 06:58

Writing your first Play Preview 05:08

LAB 1: Writing Playbook for Base System Configurations Preview 00:35

Validating and applying Ansible Playbook Preview 05:29

LAB 2: Validating Syntax Preview 01:08

Troubleshooting playbook failures Preview 04:42

LAB 3 :Error Handling and Debugging Preview 01:07

Adding another play for app servers Preview 03:36

LAB 4: Adding Additional Play Preview 00:52

Nano Project: Create a playbook to deploy a Static Site Preview 02:02

Nano Project ANP001: Write a Playbook to Deploy a Static HTML Site

Your task is to create a playbook to deploy a static html site.

Cleaning up lb node after deploying static site Preview 00:30

Section Introduction Preview 01:08

Why do you need roles? Preview 03:30

Anatomy of a Role Preview 03:35

Code Organization Strategies Preview 03:46

Generating Roles Scaffold and Ansible Galaxy Preview 02:49

Creating a role for Apache Preview 05:21

LAB 1: Configuring app server environment with Roles Preview 00:35

Writing and applying playbook for app servers Preview 03:14

LAB 2: Writing Tasks to Install and Start Apache Web Service Preview 00:40

Copying config file, notifications and handlers Preview 07:55

LAB 3: Managing Configurations Preview 00:37

Creating a role for PHP Preview 05:44

LAB 4: Create a role to install php Preview 00:13

Nested roles and site wide playbook Preview 04:53

LAB 5: Systems role, dependencies and nested roles Preview 01:11

Nano project: Deploy Devops Demo App Preview 02:14

Nano Project ANP002: Write a role to deploy devopsdemo app

devops-demo-app is an application written in PHP. You have already setup the environment above with apache and php roles, to deploy this application. Your job is to write the ansible code to deploy this application on app servers. This code will be in the form of a role.

Section Introduction Preview 01:12

Need to separate data from code Preview 03:21

Diving into Jinja2 templates Preview 05:13

Understanding ansible vars, Precedence Levels and Best Practices Preview 06:57

Advanced vars concepts Preview 06:30

Dynamically defining app version with vars and tasks Preview 05:53

Managing app configs with templates and vars Preview 09:13

LAB 1: Templates and Variables Preview 01:52

Playing with vars precedence Preview 08:14

LAB 2: Beyond defaults - Playing with vars precedence Preview 00:45

Registereed varibles and conditional execution Preview 04:52

LAB : 3 Registered Variables Preview 01:00

Discovering facts with setup module Preview 04:44

Section Introduction Preview 00:39

Tour of Ansible Galaxy Preview 08:28

Selecing role for HAProxy Preview 05:23

Applying HAProxy role with custom properties Preview 04:07

Troubleshooting HAProxy Issues Preview 05:28

Nano Project: Setup MySQL database using a galaxy role Preview 02:45

Setting up MySQL Preview 05:56

Connecting app with the database Preview 02:09

Checking in the galaxy roles Preview 02:42

Tagging tasks, roles, plays and playbooks Preview 04:14

Overview of Conditionals Preview 04:30

Overview of Iterators Preview 05:01

Iterating over a list to install packages Preview 02:41

LAB 1: Control Structures Preview 00:20

Iterating over a dictionary to create users Preview 04:16

LAB 2: Iterating over a hash table/dictionary to create users Preview 00:20

Using conditionals in tasks and templates Preview 03:39

LAB 3: Refactoring apache playbook to add support for Ubuntu Preview 01:21

Adding Ubuntu support by conditionally including vars Preview 08:16

LAB 4: Selective execution by using tags Preview 00:39

Making application compatible with ubuntu Preview 06:16

Enabling Facts Caching Preview 06:11

Using Magic Variables for Service Discovery Preview 06:56

LAB 1: Magic Variables for Service Discovery, Multiple Environments Preview 00:06

Creating staging environment Preview 09:22

LAB 2: Create staging environment Preview 00:16

Rolling back changes with contra playbooks Preview 04:52

Section Introduction Preview 00:59

Encrypting a file and using it in a playbook Preview 06:09

LAB 1: Encrypting and decrypting with single key Preview 00:17

Using a password file and Rekeying Preview 03:57

Vault 1.2 and multiple Vault IDs Preview 06:07

Changing Vault IDs and Encrypting Strings in File Preview 05:06

LAB 2: Multiple vault ids and encrypting strings Preview 00:14

Encrypting mysql passwords with Vault Preview 05:25

Section Introduction Preview 00:55

Writing tasks for importing database schema Preview 05:40

Applying schema updates and Troubleshooting Preview 04:51

Creating strategy for Rolling updates Preview 04:17

Adding pre and post tasks, Tasks gelegation, Testing with wait_for Preview 06:06