Back to schedule

Please note: Seats are limited and you need to register separately after purchasing a conference ticket.
Please check out the requirements of this workshop below.

Managing Rolling Updates with Ansible

  • Intro to concepts
  • Working with groups and inventories
  • Using set operators to manage hosts and inventories
  • Practical exercise in provisioning hosts using cloud modules (assumes cloud connectivity)
  • Strategies for updating clusters
  • Tools for controlling rolling updates (serial, delegation, failing fast)
  • Practical exercise rolling update of cluster

Abstract

Deploying applications in load balanced environments can be quite a challenge, especially when "zero downtime" is a requirement. Updates require repeatedly draining traffic from part of a cluster, upgrading software and bringing hosts back online. The goal, of course, is to do all of this in such a way that the user does not notice anything.
The complexity involved in this process makes doing all of this manually extremely error prone and therefore highly impractical. Automation tools like Ansible make this process easier by taking care of all the tedious, error-prone stuff for us.

This workshop will provide a "hands-on" experience in using Ansible to manage a load balanced web application. We will see how to use modules for provisioning hosts and installing software dependencies. We will explore how to use inventories,groups, delegation and handlers to configure and orchestrate all the components of a running application. We will then look at strategies for upgrading applications and demonstrate how to perform rolling upgrades with zero downtime.

Prerequisites:

  • Linux or Mac laptop (can run a terminal and use SSH)
  • Basic knowledge of Ansible and main concepts (playbooks, tasks, templates, variables, inventories)
  • Comfortable editing YAML files
  • Vagrant installed on laptop (fallback in case we can't access Catalyst Cloud)

Requirements

Technical:

  • Laptop -- any flavour of Linux or Mac is probably good as long as  you can run commands in a shell and have sudo privileges
  • Python installed (preferably >= Python3.5)
  • python virtualenv installed
  • An SSH key
  • YAML-friendly editor (atom is good)

Knowledge:

  • Will assume familiarity with fundamental Ansible components and   primitives: playbooks, tasks, roles, inventories, templates, variables, handlers
  • Basic familiarity with Unix/Linux shell commands
  • Ability to edit YAML without flipping tables over

Travis Holton

Software & DevOps Technologist at Catalyst