goodplay: Make your deployment play well.

goodplay enables you to test your deployments and distributed software infrastructure by reusing your existing knowledge of Ansible.

User Documentation

This part of the documentation, which is mostly prose, begins with some background information about goodplay, then focuses on step-by-step instructions for digging deeper into what can be accomplished with goodplay.

Feature Documentation

All features provided by goodplay are documented in this section. So if you’re trying to use a specific feature you should find all the details here.

Real-World Examples

In case you need some inspiration you should have a look at our real-world examples that showcase how goodplay is used in the wild.

Contributor Documentation

If you want to contribute to the project, this part of the documentation is for you.


0.7.0 (2016-06-18)

Major Changes

  • support become_user with Docker’s native user management when running privilege escalation task against Docker Compose environment thus sudo is not required in a Docker container anymore; this may change in a future version once Ansible supports su with Docker connection plugin
  • drop support for ansible==2.0.x, now require ansible>=2.1.0

Bug Fixes

  • fix issue with using local Ansible roles (--use-local-roles)
  • fix wait_for test task that timeouts or otherwise fails resulting in global fail

Internal Changes

  • skip Docker-related tests when Docker is not available
  • run Travis CI tests against latest two Docker minor versions, each with latest patch version
  • add tests for automatic check mode usage when using a custom module that supports check mode

0.6.0 (2016-04-28)

Major Changes

  • use Docker Compose for defining environments instead of reinventing the wheel, thus bringing you all the latest and greatest features of Docker Compose (e.g. running from Dockerfile, custom networks, custom entrypoints, shared volumes, and more)
  • support running any test playbook (not only Ansible role playbooks) against multiple environments
  • test tasks now run in check mode when supported by module
  • remove goodplay_image and goodplay_platform support from inventory files
  • remove .goodplay.yml support as it has only been used for defining platform-name-to-docker-image mapping which is now handled by Docker Compose

Minor Changes

  • now depend on pytest>=2.9.1,<3

Other Improvements

  • fresh goodplay logo
  • do not display traceback for goodplay failures

0.5.0 (2016-03-20)

Major Changes

  • goodplay now requires at least Docker 1.10.0
  • docker: make use of user-defined networks to isolate test environments
  • docker: hosts can now resolve each other thanks to Docker’s embedded DNS server
  • support use of local Ansible roles (--use-local-roles) during test run

Bug Fixes

  • add missing ansible_user inventory variable in tests as this is required for latest Docker connection plugin in Ansible
  • fix junitxml support for pytest>=2.9.1

Other Improvements

  • ease test writing by introducing smart_create helper
  • speed-up tests by using gather_facts: no where possible
  • docs: compare goodplay to other software
  • add gitter chat badge
  • explicitly disable Ansible retry files

0.4.1 (2016-01-22)

Major Changes

  • repository moved to new organization on GitHub: goodplay/goodplay

Bug Fixes

  • fix host vars getting mixed due to Ansible caches being kept as module state

0.4.0 (2016-01-13)

Major Changes

  • add support for testing against defined Docker environment
  • make latest Ansible 2.0 release candidate install automatically
  • massive documentation refactorings, now available under
  • introduce command line interface: goodplay
  • drop Ansible 1.9.x support to move things forward

Bug Fixes

  • fix goodplay plugin missing when running Ansible

Internal Changes

  • switch from traditional Code Climate to new Code Climate Platform
  • disable use_develop in tox.ini to more closely match a real user’s environment
  • refactor code to have sarge integrated at a single point

0.3.0 (2015-09-07)

Major Changes

  • add support for Ansible role testing
  • add support for auto-installing Ansible role dependencies (hard dependencies)
  • add support for auto-installing soft dependencies

Bug Fixes

  • fix test failing when previous non-test task has been changed
  • fix failing non-test task after all completed test tasks not being reported as failure

Internal Changes

  • use ansible-playbook subprocess for collecting tests as Ansible does not provide an official Python API and Ansible internals are more likely to be changed
  • various code refactorings based on Code Climate recommendations
  • switch to Travis CI for testing as it now supports Docker

0.2.0 (2015-08-24)

  • initial implementation of Ansible v1 and v2 test collector and runner

0.1.0 (2015-07-22)

  • first planning release on PyPI