Become a world-class Ansible engineer
Learn Ansible by building a production-ready, real world project step by step with an Ansible expert.
I'm a tech lead and 8+ year Ansible professional. I designed this course to give you the Ansible skills of a senior DevOps engineer working on my team, no matter your starting level. In this course you'll build skills from the ground up, by building an production-grade infrastructure project yourself, from scratch. We'll get there together the way professional engineers do: starting with "Hello, World!" and iterating.
Learn about Ansible features by actually using them to build something
Focus on skills that are actually useful in the industry
Learn the project structure and workflows of someone who writes Ansible professionally
Each lesson ends with working Ansible code you can run
Each chapter ends with an open-ended practical project you'll complete on your own, and an example solution from me
You'll start simple and use Ansible to build your way to a complex real-world architecture step by step. The code you'll write and the skills you'll learn on the way can be applied to many other projects.
Learn Ansible fundamentals like playbooks and modules by using them to manage software and files on a remote system.
Use Ansible to manage multiple remote machines, develop reusable roles, deploy application code from Git and set up database replication.
Use Ansible to manage many hosts of different kinds, orchestrate complex maintenance operations, manage secrets and unit test your code.
Get instant access with simple pricing options.
Early access discount: full lifetime access + all future updates
Chapter 1 introduction
FREE PREVIEWEssentials of an Ansible project and anatomy of a playbook
FREE PREVIEWFlesh out the playbook with the "debug" module
FREE PREVIEWInstall nginx with the “shell” module
FREE PREVIEWFind modules using the Ansible docs
FREE PREVIEWEnsure nginx is installed with the "apt" module and "become"
FREE PREVIEWEnsure the static site directory exists with the "file" module and "diff" mode
FREE PREVIEWCopy static HTML files onto the VM with the "copy" module
Update nginx config with "copy" and reload the service with the “service” module
Make the playbook idempotent using "handlers"
DRY out the playbook using variables and the "template" module
Chapter 1 review
Chapter 1 project: Static web server with apache
Chapter 1 project review/example solution
Chapter 2 introduction
Going from one to many hosts: Ansible’s execution strategies and error handling
Deploying application code with the “user” and “git” modules
Creating and starting the web application service with the “pip” and “systemd” modules
Convert our webapp tasks, variables and template into a "webapp" role
Create an nginx role with the "apt_key" and "apt_repository" modules, iterating quickly with "tags"
Proxy the webapp via nginx
Update the webapp settings without breaking idempotence using the “synchronize” module and loops
Create a postgres role using "jinja filters"
Use postgres db instead of sqlite using the "postgresql" collection of modules and advanced looping
Prepare servers for postgres replication using conditional tasks, variable precedence and "group_vars "
Enable postgres replication using "host_vars", "include_tasks" and "blocks"
Deploy updates to application code by reusing existing code
Ansible’s power as an orchestrator: create a failover playbook
Chapter 2 review
Chapter 2 project: New webapp role in a language other than Python
Chapter 2 project review/example solution
Chapter 3 introduction (coming soon)
Updating important software versions
First steps to a multi-tier architecture: use Ansible "groups" to target multiple VMs in a new playbook
Adapt the "postgres" role to the multi-tier architecture using Ansible's special "hostvars" variable
Adapt the "webapp" role to the multi-tier architecture by using the "generic tasks" pattern
Create a failover playbook for the multi-tier architecture
Add a software firewall to our hosts by reviewing and installing an open-source role using Ansible Galaxy
Simple and secure secret management with Ansible Vault
Congratulations (coming soon)
Course Recap (coming soon)
Feedback (coming soon)
Next Steps (coming soon)
Yes, I regularly add and update content, and make sure that the course works with the latest versions of Python and Ansible (latest: Python 3.12 and Ansible 2.16). I also iterate on the course by incorporating feedback from students who have taken the course. If you purchase full lifetime access you'll have access to all future updates and improvements.
I'm actively working on chapter 3 of the course (2024), so updates are happening constantly. Most recently I have confirmed that all the code works with Python 3.12 and Ansible 2.16.
I'm actively working on the lessons for chapter 3 and will release them as I create them. I aim to have them all done in 2024.
If you buy the course and aren't satisfied, simply contact me within 14 days of your purchase and I will refund your full purchase price. I work very hard to make this course valuable for everyone, so if you could give me specific feedback why the course was not valuable to you that would be a huge help for me and future students of the course.
I have done my best to make this course valuable for people with a range of industry experience. I'm presuming that most people that would like to take this course have some background in system administration, DevOps, SRE, NSE or some kind of programming. The only firm prerequisites for this course are: basic knowledge of Linux system administration (e.g. you could SSH into a Linux machine and edit a file or start/stop a service), your dev machine is set up for SSH, you have a code editor or IDE you're familiar with, Python 3 and pip installed, and optionally for Windows users: WSL set up and working. The development environment setup for the course works for Windows, Mac and Linux host operating systems.
Yes, all the course code (including the virtual machine development environment) works with Windows, Mac and Linux host operating systems. The virtual machines you create in the course will be running Linux, but the VM software works on all host operating systems. Ansible code is portable and just requires Python 3 to run.