Compound testing for Ansible
Entries are in reverse chronological order.
extra_vars.json in the stage directory, with a fallback to the suite
directory./usr/local/bin. Remove the
hard coding and rely on $PATH. [#1]reject! won’t always return the Hash. We need to return
that explicitly.ansible-playbook.DEBUG is set
(to anything that’s not the empty string).Clean up the generated inventory after the test has run.
Add a simple example in lieu of tests.
Code clean-up including using Forwardable to avoid lots of tiny
forwarding methods, and correctly namespacing the ServerSpec and
Vagrant classes. Sorry for polluting your programmes!
Allow setting ENV variables for the Vagrant command by adding an env file
to the test suite or individual test.
Bug fix: set correct Ansible variable for SSH key to access VMs.
Allow setting verbosity of Ansible output using ANSIBLE_VERBOSITY. This
will only be seen if LOG_LEVEL is debug, but it can be handy even in
that case.
Bug fix: allow connecting to VMs when we generate their IP address on the fly.
Bug fix: correctly expand the staging directory when searching for
the stages playbook.yml or inventory file.
Various bug fixes - mostly typos that would stop the full test run happening.
Add a command line tool, so we don’t need the Rakefile. Currently this
only handles running the entire test suite.
Stop requiring that the inventory files specify an IP address. If no IP address is provided for a VM it will be assigned an unallocated one.
Simplify asking Compound to define Rake tasks by allowing it to guess the directories involved. These can still be overridden, but they shouldn’t normally need to be.
Stop supporting the concept of ‘simple’ tests - tests which have only one implicit stage. Compound feels most useful when focussing on lifecycle style tests which have several stages.
Allow a default inventory and playbook for each test, living in the test directory instead of in each stage. This is less likely to be useful for the playbook, but a default inventory will reduce duplication.
Symlink wrapper playbooks instead of writing temporary playbooks with includes.
Initial release.