Autoplay
Autocomplete
HTML5
Flash
Player
Speed
Previous Lecture
Complete and continue
Zero to Ansible
Course Introduction
How to Navigate this course (4:02)
Have Question, Find Help and Support (5:47)
Certification Blueprint (3:35)
Important Resources for this Course
Introduction to Ansible
What is Ansible Part I: Why Ansible ? (5:44)
Ansible Introduction
What is Ansible Part II: Simplicity, YAML, Push Model, Custom Modules (5:41)
What is Ansible Part III: Batteries Included Approach (4:28)
What is Ansible Part IV: Infrastructure as a Code (6:10)
What is Ansible Part V: Code vs Data (4:38)
What is Ansible Part VI: idempotence and State Management (6:10)
Setting up the Environment
Section Introduction (1:17)
Introduction to codespaces (5:55)
Setting up codespaces locally with docker (7:11)
Launching codespaces on digital ocean cloud (7:42)
Managing codespaces (7:51)
Path to Automation with Ansible
Section Introduction (0:51)
Tasks, Modules, Roles (6:45)
Inventories and Playbooks (5:11)
Book Recommendation: Ansible Playbook Essentials (1:08)
Code Organization Strategies (4:27)
Introducing Use Case - Devops Demo App (4:02)
Approach to automate Devops Demo App (4:41)
Ad Hoc Server Management with Ansible
Section Introduction (1:33)
Configuring Ansible (6:24)
Defining a static Inventory (5:50)
LAB 2: Creating Host Inventory
Host Patterns and Ad Hoc Commands (8:53)
LAB 3: Ad Hoc commands
Modules and Desired State Configuration (4:59)
LAB 4: Using modules to manage the state of infrastructure
Invoking Modules, Idempotence (6:00)
Using common modules (7:33)
Command Modules and Idempotence (7:43)
Using ansible-console REPL Shell (3:56)
Playbooks
Section Introduction (1:07)
YAML Primer (5:19)
Anatomy of a Playbook (6:58)
Writing your first Play (5:08)
LAB 1: Writing Playbook for Base System Configurations
Validating and applying Ansible Playbook (5:29)
LAB 2: Validating Syntax
Troubleshooting playbook failures (4:42)
LAB 3 :Error Handling and Debugging
Adding another play for app servers (3:36)
LAB 4: Adding Additional Play
Nano Project: Create a playbook to deploy a Static Site (2:02)
Cleaning up lb node after deploying static site
Roles
Section Introduction (1:08)
Why do you need roles? (3:30)
Anatomy of a Role (3:35)
Code Organization Strategies (3:46)
Generating Roles Scaffold and Ansible Galaxy (2:49)
Creating a role for Apache (5:21)
LAB 1: Configuring app server environment with Roles
Writing and applying playbook for app servers (3:14)
LAB 2: Writing Tasks to Install and Start Apache Web Service
Copying config file, notifications and handlers (7:55)
LAB 3: Managing Configurations
Creating a role for PHP (5:44)
LAB 4: Create a role to install php
Nested roles and site wide playbook (4:53)
LAB 5: Systems role, dependencies and nested roles
Nano project: Deploy Devops Demo App (2:14)
Vars and Templates
Section Introduction (1:12)
Need to separate data from code (3:21)
Diving into Jinja2 templates (5:13)
Understanding ansible vars, Precedence Levels and Best Practices (6:57)
Advanced vars concepts (6:30)
Dynamically defining app version with vars and tasks (5:53)
Managing app configs with templates and vars (9:13)
LAB 1: Templates and Variables
Playing with vars precedence (8:14)
LAB 2: Beyond defaults - Playing with vars precedence
Registered variables and conditional execution (4:52)
LAB : 3 Registered Variables
Discovering facts with setup module (4:44)
Ansible Galaxy
Section Introduction (0:39)
Tour of Ansible Galaxy (8:28)
Selecting role for HAProxy (5:23)
Applying HAProxy role with custom properties (4:07)
Troubleshooting HAProxy Issues (5:28)
Nano Project: Setup MySQL database using a galaxy role (2:45)
Setting up MySQL (5:56)
Connecting app with the database (2:09)
Checking in the galaxy roles (2:42)
Tagging tasks, roles, plays and playbooks (4:14)
Controlling Execution Flow
Overview of Conditionals (4:30)
Overview of Iterators (5:01)
Iterating over a list to install packages (2:41)
LAB 1: Control Structures
Iterating over a dictionary to create users (4:16)
LAB 2: Iterating over a hash table/dictionary to create users
Using conditionals in tasks and templates (3:39)
LAB 3: Refactoring apache playbook to add support for Ubuntu
Adding Ubuntu support by conditionally including vars (8:16)
LAB 4: Selective execution by using tags
Making application compatible with ubuntu (6:16)
Auto Discovery and Manging Multiple Environments
Enabling Facts Caching (6:11)
Using Magic Variables for Service Discovery (6:56)
LAB 1: Magic Variables for Service Discovery, Multiple Environments
Creating staging environment (9:22)
LAB 2: Create staging environment
Rolling back changes with contra playbooks (4:52)
Vault
Section Introduction (0:59)
Encrypting a file and using it in a playbook (6:09)
LAB 1: Encrypting and decrypting with single key
Using a password file and Rekeying (3:57)
Vault 1.2 and multiple Vault IDs (6:07)
Changing Vault IDs and Encrypting Strings in File (5:06)
LAB 2: Multiple vault ids and encrypting strings
Encrypting mysql passwords with Vault (5:25)
Application Deployments
Section Introduction (0:55)
Writing tasks for importing database schema (5:40)
Applying schema updates and Troubleshooting (4:51)
Creating strategy for Rolling updates (4:17)
Adding pre and post tasks, Tasks gelegation, Testing with wait_for (6:06)
Section Introduction
Lecture content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock