⚠️ This course is currently in early access as I work on chapter 3. For a limited time you can get full lifetime access for a discounted price. ⚠️

Sign up now for full lifetime access to all current and future lessons as I release them, plus future improvements, extras and bonus content.

Learn the Ansible skills that really matter in industry through practical projects

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

Students of this course work at

What you'll build

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.

Chapter 1: Simple static web server

Learn Ansible fundamentals like playbooks and modules by using them to manage software and files on a remote system.

Chapter 2: Web application with database replication

Use Ansible to manage multiple remote machines, develop reusable roles, deploy application code from Git and set up database replication.

Chapter 3: Multi-tier web application with database replication

Use Ansible to manage many hosts of different kinds, orchestrate complex maintenance operations, manage secrets and unit test your code.

Pricing options

Get instant access with simple pricing options.

Full lifetime access includes

  • Full source code

  • All future updates

  • 14 day money-back guarantee

  • Lifetime access

  • Help and support

  • Bonus content included

Course curriculum

    1. Chapter 1 introduction

      FREE PREVIEW
    2. Essentials of an Ansible project and anatomy of a playbook

      FREE PREVIEW
    3. Flesh out the playbook with the "debug" module

      FREE PREVIEW
    4. Install nginx with the “shell” module

      FREE PREVIEW
    5. Find modules using the Ansible docs

      FREE PREVIEW
    6. Ensure nginx is installed with the "apt" module and "become"

      FREE PREVIEW
    7. Ensure the static site directory exists with the "file" module and "diff" mode

      FREE PREVIEW
    8. Copy static HTML files onto the VM with the "copy" module

    9. Update nginx config with "copy" and reload the service with the “service” module

    10. Make the playbook idempotent using "handlers"

    11. DRY out the playbook using variables and the "template" module

    12. Chapter 1 review

    13. Chapter 1 project: Static web server with apache

    14. Chapter 1 project review/example solution

    1. Chapter 2 introduction

    2. Going from one to many hosts: Ansible’s execution strategies and error handling

    3. Deploying application code with the “user” and “git” modules

    4. Creating and starting the web application service with the “pip” and “systemd” modules

    5. Convert our webapp tasks, variables and template into a "webapp" role

    6. Create an nginx role with the "apt_key" and "apt_repository" modules, iterating quickly with "tags"

    7. Proxy the webapp via nginx

    8. Update the webapp settings without breaking idempotence using the “synchronize” module and loops

    9. Create a postgres role using "jinja filters"

    10. Use postgres db instead of sqlite using the "postgresql" collection of modules and advanced looping

    11. Prepare servers for postgres replication using conditional tasks, variable precedence and "group_vars "

    12. Enable postgres replication using "host_vars", "include_tasks" and "blocks"

    13. Deploy updates to application code by reusing existing code

    14. Ansible’s power as an orchestrator: create a failover playbook

    15. Chapter 2 review

    16. Chapter 2 project: New webapp role in a language other than Python

    17. Chapter 2 project review/example solution

    1. Chapter 3 introduction (coming soon)

    2. Updating important software versions

    3. First steps to a multi-tier architecture: use Ansible "groups" to target multiple VMs in a new playbook

    4. Adapt the "postgres" role to the multi-tier architecture using Ansible's special "hostvars" variable

    5. Adapt the "webapp" role to the multi-tier architecture by using the "generic tasks" pattern

    6. Create a failover playbook for the multi-tier architecture

    7. Add a software firewall to our hosts by reviewing and installing an open-source role using Ansible Galaxy

    8. Simple and secure secret management with Ansible Vault

    1. Congratulations (coming soon)

    2. Course Recap (coming soon)

    3. Feedback (coming soon)

    4. Next Steps (coming soon)

About this course

  • 49 lessons
  • 7.5 hours of video content
  • Go from beginner to advanced step by step
  • 3 practical projects with example solutions
  • Develop a repo of usable code that you can apply to your own projects

Testimonials

See what others are saying about Productive with Ansible

“I am new to DevOps and Linux, so I really liked how Percy explained everything in detail so that a beginner could understand and follow along. I often get bored with other courses because they just show theory, but in this course I was writing code in almost every lesson. The projects were quite challenging, but I learned a lot by applying the lessons on my own. After the first chapter I already felt confident enough to start using Ansible at work, and by the time I had finished the course I had coworkers asking me Ansible questions.”

“I took this course after I watched many of Percy's Ansible videos on YouTube. Many other instructors are not very professional or there is too much time spent talking about things that are not important. This course was extremely professional and to the point. You learn all about Ansible by applying all the skills directly to what you're building and not just listening to lectures. I highly recommend this course if you want to learn Ansible.”

“I started a new role as a senior in a company that uses Ansible and needed to get to a senior level with it as quickly as possible. This course got me feeling competent with Ansible in a matter of hours. This was definitely one of the best courses I've taken to learn a new tool: it was very practical, high quality and relatively fast-paced. One of the most valuable things for me personally was being able to see the workflows of someone that is an expert in the tool. Percy doesn't just teach Ansible, he shows you how to get things done quickly and precisely.”

Meet your instructor

I'm a self-taught software and systems engineer. I started out as a mechanical engineer and re-specialized into software by reading books and taking online courses. I ended up as a technical lead at a tech giant in the Bay Area. I know from experience that it's possible to become competent in extremely valuable skills without a university degree or extremely expensive bootcamps. I really enjoy teaching others the skills, workflows and mindset that can make them successful in the tech industry, whether you're working as an engineer in a large company, or a solopreneur bootstrapping your own startup. The core tenets of my philosophy are productivity and quality, which I believe come from quick iteration and sound fundamentals. I've put my heart and soul into making my courses as valuable as possible for you and I'm honored that you've chosen to learn from me.

Percy Grunwald

Frequently asked questions

  • Do you update the course?

    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.

  • How recently was the course updated

    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.

  • When will chapter 3 of the course be released?

    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.

  • What is the money-back guarantee?

    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.

  • What are the prerequisites for 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.

  • I use Windows/Mac/Linux on my dev machine, will all the code work?

    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.