Messier
Test Ansible roles with Vagrant. Inspired by Test Kitchen.
Features
- Supports multi-machine roles
- Permits reboots during provisioning
- Use any backend provider available in Vagrant (VirtualBox, AWS, DigitalOcean, etc.)
- Runs Serverspec tests per role via ansible_spec
- Integrates with preexisting Serverspec setups
Motivation
Test Kitchen is a wonderful solution for testing system configuration—if you use Chef. Its support for Ansible is, however, lacking. Similar Packer, Test Kitchen tries to run Ansible in "local" mode, which makes it impossible to test multi-machine roles for service orchestration. Well-meaning projects such as kitchen-ansiblepush (not to be mistaken with Ansible pull mode) enable more traditional Ansible usage patterns, but still suffer from limitations such as reboots always triggering failure.
In order to simplify setup, Test Kitchen makes the concession that testing VMs are polluted with additional software in order to accommodate test running. Serverspec has an SSH transport built into it, and Test Kitchen ignores that functionality completely.
Name
Messier was a comet hunter, and didn't much care for galaxies or nebula. He
only kept track of non-comet objects so he wouldn't bother inspecting them
further. Similarly, the messier
tool, particularly the messier ci
subcommand, considers working configurations forgettable, and flag only
failures for follow-up work. The name is also brutally honest, in that the
heavy Vagrant dependency will make your configuration projects messier.
TODO
- Add
init
command for bootstrapping Messier config
License
GPLv3 (would like to use MIT, but if import ansible appears, then it must be GPLv3).