Mastering Ansible is a comprehensive guide designed for those keen to delve into configuration management and orchestration using Ansible. This course takes you on a step-by-step journey, building a realistic application stack from scratch, aligning with Ansible's core concepts, and integrating more complexity as the application evolves.
Course Overview
Instead of merely browsing through Ansible documentation, this course strategically orders topics to match the rising complexity of your application as you build and refactor it. The focus remains on crafting tools that help maintain and troubleshoot applications, aiming for a workflow where all configuration and troubleshooting is conducted via Ansible playbooks, allowing for repository commitment and future improvements.
Course Structure
The course unfolds across 6 sections:
- Initial installation and foundational concepts.
- Building a sample application environment layer-by-layer, learning a new concept in each lecture.
- Refactoring the setup with an emphasis on modularity and encapsulation.
- Optimizing code and reducing playbook execution time.
- Troubleshooting and testing final configurations.
Each lecture introduces a new Ansible concept, applied directly to your playbooks, featuring live demonstrations showing expected outputs. Lecture notes include links to relevant documentation and snapshots of the codebase by the lecture's end.
This course uses Ansible version 1.9.3 with a focus on a 3-tier web application environment, leveraging NGINX, Apache2, Python, and MySQL on Ubuntu Linux servers. Note that Windows server administration is not covered.
Perfect for beginners, the course also serves as an excellent resource for engineers interested in configuration management, orchestration, infrastructure-as-code, and DevOps principles.
Course Requirements
- You should have a Linux or Mac OS X computer, or access to at least one Linux virtual machine for installing Ansible.
- A code editor or IDE of your choice is needed.
- A terminal and SSH client are necessary for running Ansible against target hosts.
- Access to 5 Linux servers (bare-metal or virtual machines) is recommended to set up the course environment and follow along.
Target Audience
- The course is geared towards students with minimal or no Ansible experience but a basic understanding of Linux systems administration.
- No programming or prior automation experience is required.
- If you're new to the Linux shell, you'll learn Ansible syntax, though understanding the underlying principles might be challenging. However, comprehensive explanations are provided for all system configurations.
What You'll Learn
- Executing ad-hoc commands against servers using Ansible.
- Writing Ansible configuration playbooks for deploying a 3-tier web application.
- Configuring Ansible roles with tasks, handlers, files, templates, and default variables.
- Creating operational playbooks to check cluster status and perform cluster restarts.
- Optimizing Ansible playbooks to enhance execution efficiency.
- Testing and troubleshooting Ansible playbook executions.