Course curriculum


 1. Introduction 

• 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
2. Getting set up
• 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
Hands-on Practice Lab: Install Ansible and test connectivity to your test nodes.
3. Inventory
• Basic inventory example
• Hosts and groups
Hands-on Practice 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.
4. Ansible Playbooks
• A useful directory structure to keep your Ansible code organized
• Using git to manage your Ansible code
• A first look at a playbook to install and configure NTP time synchronization
Hands-on Practice Lab: Create a playbook to install and configure openssh-server on all nodes and make sure it is running.5. Provisioners
• Connecting Ansible to your preferred cloud provider (we’ll use DigitalOcean)
• Creating a new server instance
• Dynamic inventory
• Dynamic inventory on Amazon AWS
• Mixing static and dynamic inventory
Hands-on Practice Lab: Refactor your inventory so that your staging environment is local using Vagrant, and your production environment is built on Digitalocean.

6. Highly available infrastructure with Ansible
• 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
Hands-on Practice Lab: Build the sample infrastructure on your local Vagrant environment.

7. Application deployments with Ansible
• Deploying our app from SCM to our local Vagrant environment
• How we would deploy that code to production once tested by QA
• Updating our application
• How Ansible compares to alternatives such as Capistrano
Hands-on Practice Lab: Proceed with deploying our application on your local Vagrant environment.

8. Docker containers with Ansible
• Brief intro to Docker
• The synergy of containerization and automation
• Using Ansible to build Docker containers
• MySQL containers
• Web application containers
• Data storage containers
Hands-on Practice Lab: Adapt your infrastructure to deploy our sample app using Docker.

9. Testing and continuous integration
• Unit, integration and functional testing
• Automating your testing using GitHub and Travis CI
Hands-on Practice Lab: Create some tests for our SSH playbook to make sure there are no syntax errors and that Ansible is configuring nodes as expected.

10. Preparing for Ansible back at work
• Real-world use case: Using Ansible to automate CM and application pipelines through continuous integration, release, deployment and operations
• We’ll review your own environments and processes and evaluate how to best integrate Ansible’s configuration management for your own needs


About the course

About the trainer

Trainer details here

Sample resumes

Sample resumes will follow