Business Skills - Ansible Configuration Management Boot Camp
Learn to put the world's simplest IT automation platform to work in your own organization. Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs. Designed for multi-tier deployments since day one, Ansible models your IT infrastructure by describing how all of your systems inter-relate, rather than just managing one system at a time. It uses no agents and no additional custom security infrastructure, so it's easy to deploy — and most importantly, it uses a very simple language (YAML, in the form of Ansible Playbooks) that allow you to describe your automation jobs in a way that approaches plain English. This course demonstrates the flexibility and power of the Ansible configuration management system, and how it can be used to build and scale highly reliable infrastructure for your own environments and projects. Using real world examples, we demonstrate how Ansible can be used to manage environments as small as a couple of servers, or for massively distributed infrastructure that spans the globe — all with the same simple syntax. By the end of this course you will have a solid understanding and hands-on experience building reliable and easily reproducible infrastructure using Ansible, and the knowledge to integrate Ansible into your operations workflow. Our continuous hands-on lab classroom format and real-world practice scenarios cement your new skills with Ansible's tools and leave you prepared to begin taking advantage of radically simple configuration management.
Duration: 20-25hrs
Course Content:
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
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
Hands-on Practice Lab: Install Ansible and test connectivity to your test nodes.
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
3. Inventory
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.
Basic inventory example
Hosts and groups
4. Ansible Playbooks
Hands-on Practice Lab: Create a playbook to install and configure openssh-server on all nodes and make sure it is running.
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
5. Provisioners
Hands-on Practice Lab: Refactor your inventory so that your staging environment is local using Vagrant, and your production environment is built on DigitalOcean.
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
6. Highly available infrastructure with Ansible
Hands-on Practice Lab: Build the sample infrastructure on your local Vagrant environment.
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
7. Application deployments with Ansible
Hands-on Practice Lab: Proceed with deploying our application 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 our application
How Ansible compares to alternatives such as Capistrano
8. Docker containers with Ansible
Hands-on Practice Lab: Adapt your infrastructure to deploy our sample app using Docker.
Brief intro to Docker
The synergy of containerization and automation
Using Ansible to build Docker containers
MySQL containers
Web application containers
Data storage containers
9. Testing and continuous integration
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.
Unit, integration and functional testing
Automating your testing using GitHub and Travis CI
10. Preparing for Ansible back at work
Exercise: Your to-do list
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