Introduction to Ansible

This course is brought to you carbon neutral.

Course Summary

A course by Matt Makai of Full Stack Python for software developers who want to learn the Ansible configuration management tool for managing servers, deploying web applications and performing DevOps tasks.

Source code and course GitHub repository

github.com/fullstackpython/book-and-video-code-examples

What's this course about and how is it different?

Most books and courses only walk you through the narrow happy path through the difficult programming forest. When you step off the path you can feel lost and frustrated because the instructor is no longer there to keep you on track.

This course takes a different approach where I show you the mistakes and errors that you will commonly run into when using Ansible, such as:

  • handling Python 3 instead of 2 as a default remote server installation
  • identifying and fixing typos in command line arguments and file paths
  • tweaking configurations for services that need to start in certain orders
  • upgrading privileges when permissions are denied in running tasks
  • working with Ansible modules that have specific Python dependencies such as psycopg2 for PostgreSQL
  • fixing shell script commands running within Ansible tasks

The best way to learn a new software development library is to pair program with a more experienced developer. That's why most of this course is live coding with explanations of what we are doing and why along the way. View the full course outline for more details.

Learn Ansible by configuring servers and deploying applications

Ansible is a stable, widely-used open source configuration management tool that works amazingly well for application deployments in any programming language, not just Python web apps.

During this course we will build several Ansible playbooks together so we can learn the tool's core concepts including:

  • Modules
  • Tasks
  • Roles
  • Templates
  • YAML syntax
  • Variables
  • Encryption

We'll build playbooks that demonstrate these concepts and connect them together by configuring servers and handling deployments.

Who is this course for?

The ideal student for this course is someone with the ability to create web applications (even simple ones) who wants to learn Ansible and configuration management to automate working with servers and application deployments.

If you don't know any programming at all, you'll want to take a primer first. I recommend you take the free MIT course Introduction to Computer Science and Programming Using Python.

If you don't know Python, consider taking Michael's Python Jumpstart by Building 10 Apps course. You do not need to know Python to learn Ansible but a bit of knowledge will help understand some of the edge case issues we debug in this course.

Concepts backed by concise visuals

An abstract topic like configuration management is best learned with diagrams and visuals to explain how the pieces fit together. Here's an example from chapter 3 when we introduce Ansible's core concepts and show how they relate:

Example: Concepts backed by concise visuals

Another example is how our two-server application deployment works as we build our Ansible playbook to automate each step:

Example: Concepts backed by concise visuals


Follow along with subtitles and transcripts

Each course comes with subtitles and full transcripts. The transcripts are available as a separate searchable page for each lecture. They also are available in course-wide search results to help you find just the right lecture.

Each course has subtitles available in the video player.

Who am I? Why should you take my course?

Who is Matt Makai?

Hey there, my name is Matt Makai, thanks for considering my course! I'm stoked to teach this course for several reasons:

1. I've been a professional software developer for over 15 years which has shown me how rewarding and empowering it is to create software for your own purposes.

2. In 2012 I started Full Stack Python as a side project to help junior developers on my team learn how to build web applications with the Python programming language. This course is a natural extension of what is provided on Full Stack Python, with step-by-step instructions so anyone can build their own application even without prior programming experience.

3. As part of the Twilio Developer Network, it's my goal to inspire and equip fellow software developers. Even if you don't consider yourself a developer, it's absolutely possible to build what you want if you're willing to take some of your own inspiration and put it into learning from hands-on videos that equip you to code.

Free office hours keep you from getting stuck

One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.

That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.

Just visit your account page to see the upcoming office hour schedule.

Is this course based on Python 3 or Python 2?

This course is based up Python 3. I strongly recommended you use Python 3 because Python version 2 will be unsupported starting in 2020, even though every Ansible example in the course should also currently work under Python 2.

The time to act is now

Learn Ansible to leverage the power of repeatable, declarative server configuration.

Course Outline: Chapters and Lectures

14:02
1:44
4:21
0:32
3:22
3:25
0:38
11:14
2:53
1:55
1:29
3:12
1:45
21:34
4:44
4:16
2:09
2:34
2:18
1:18
1:37
1:56
0:42
18:26
1:01
1:49
1:08
1:33
2:24
4:11
1:51
3:34
0:55
17:19
1:37
3:13
2:28
1:14
3:39
1:09
3:02
0:57
37:30
1:32
1:07
1:10
1:05
6:16
2:42
1:39
1:11
2:20
4:24
1:41
2:32
3:35
4:43
0:59
0:34
48:38
3:08
1:44
2:46
5:41
5:40
3:01
5:54
1:42
3:17
2:07
3:51
1:27
3:01
1:02
3:06
1:11
5:12
2:29
2:43
Buy the bundle, save 60% For your team Give as a gift

Questions? Send us an email: contact@talkpython.fm