Back to top

It works on my machine (!)

Deploy everywhere using one Ansible playbook

Every project includes at least one local environment, and one or more remote environments. These days we casually manage multiple remote code deployments using tools such as Ansible, Chef, Puppet, and Salt. But we don't use the same tools to deploy code to our local development instances—or if we do, we rarely do it like we do it on Prod. Furthermore, the people who know the most about deploying the codebase to the remote environments are often not the application experts—i.e. the developers—who we expect to be able to diagnose problems with the app when a deployment fails.

As a result we may see:

  • inconsistencies in behaviour between local code and deployed code
  • inconsistencies in behaviour between individual developers' local code, and
  • unexpected failures in deployments and deployed code

These environment-based problems can be overcome by creating one process to deploy code to every environment. This talk, aimed at developers with some knowledge of Vagrant and Ansible, will explain and demo a straightforward, reliable, and reproducible Ansible-based Drupal-deployment workflow including:

  • tooling and setup,
  • public, private, global, and per-environment variables in Ansible,
  • initial local deployments,
  • ongoing development workflow and task-runners,
  • pre-commit local deployment tests,
  • running remote deployments,
  • rolling back deployments.

Stream available from:

Wunder Space (B103)
Session type
Christopher Torgalson headshot
Christopher Torgalson