Overview
The Ansible Configuration Management Boot Camp discusses the flexibility and power of the Ansible configuration management system. It demonstrates how to use this system to build and scale highly reliable infrastructure for different environments and projects. The course discusses real-world examples to explain how Ansible can be used to manage environments as small as a couple of servers to massively distributed global infrastructure, by using a simple syntax. The course enables participants to have a thorough understanding and intensive hands-on experience of building reliable and easily reproducible infrastructure using Ansible, and teaches how to integrate Ansible into the operations workflow.
What You'll Learn
- Configuration management and DevOps
- Ansible terminology
- Setting up Ansible
- Ansible playbooks
- Docker containers
- Different types of testing
- Inventory
Curriculum
- Why configuration management is a critical part of any DevOps team?
- Strengths and weaknesses of Ansible
- Web scale
- How Ansible is different from other CM tools like Chef and Puppet
- Getting started with Ansible terminology
- Ansible and YML for describing your environments
- Some prerequisites
- Getting set up on a Mac
- Getting set up on Linux
- Getting set up on Windows
- Testing with Vagrant
- Using SSH keys to connect to your target nodes
- Lab: Install Ansible and test connectivity to the test nodes
- Basic inventory example
- Hosts and groups
- Lab: Create an inventory file that defines four hosts, two web servers and two database servers, and assign these hosts to groups that describe their function
- A useful directory structure to keep your Ansible code organized
- Using Git to manage Ansible code
- A first look at a playbook to install and configure NTP time synchronization
- Lab: Create a playbook to install and configure openssh-server on all nodes and ensure it is running
- Connecting Ansible to the preferred cloud provider (the course uses DigitalOcean)
- Creating a new server instance
- Dynamic inventory
- Dynamic inventory on Amazon AWS
- Mixing static and dynamic inventory
- Lab: Refactor your inventory so that your staging environment is local using Vagrant, and your production environment is built on DigitalOcean.
- Spec up our inventory and host groups
- Using roles
- Configure our database backend
- Configure our web server front-end
- Configure a replicated filesystem
- Configure centralized logging
- Lab: Build the sample infrastructure on your local Vagrant environment
- Deploying our app from SCM to our local Vagrant environment
- How we would deploy that code to production once tested by QA
- Updating the application
- How Ansible compares to alternatives such as Capistrano
- Lab: Proceed with deploying our application on your local Vagrant environment
- Brief introduction to Docker
- The synergy of containerization and automation
- Using Ansible to build Docker containers
- MySQL containers
- Web application containers
- Data storage containers
- Lab: Adapt your infrastructure to deploy our sample app using Docker
- Unit, integration and functional testing
- Automating your testing using GitHub and Travis CI
- Lab: Create some tests for our SSH Playbook to make sure there are no syntax errors and that Ansible is configuring nodes as expected
- Real-world use case: Using Ansible to automate CM and application pipelines through continuous integration, release deployment and operation
- Reviewing environments and processes, and evaluate how to best integrate Ansible’s configuration management for your own needs
- Exercise: Your to-do list
Who should attend
The Ansible Configuration Management Boot Camp is highly recommended for –
- IT managers and leaders
- Developers and Application teams
- System administrators
- IT Operations professionals
- Release engineers
- Configuration managers
- Anyone involved in IT infrastructure
- ScrumMasters
- Software managers and team leads
Prerequisites
There are no mandatory prerequisites for this course. It is recommended for participants to complete the Fundamentals of DevOps before taking this course.