neillturner/kitchen-ansible — pull request #6 by trinitronx (2014-09-10 05:15:58+00:00)
Title: Fix some issues with ansible install procedure

So it looks like the current install script for Ansible wasn't actually working on Ubuntu, and really just happened to be failing, but still pulling a packaged version of ansible from the official Ubuntu `backports` repo! I've fixed this so `kitchen-ansible` will install from the "`rquillo`" PPA. This should ensure a consistent version of Ansible is installed across all our currently supported (i.e.: [NON-EOL][1]) Ubuntu platforms.

- Fixed Ubuntu installs of ansible via PPA (Tested on `10.04 (lucid)`, `12.04 (precise)`, `13.10 (saucy)`, `14.04 (trusty)`)
- Fix errors about ansible runtime-dependency: `python-selinux`/`libselinux-python` (ansible requires this on the host where it is run.. so we install it inside vagrant box) (Tested on Ubuntus: `10.04 (lucid)`, `12.04 (precise)`, `13.10 (saucy)`, `14.04 (trusty)` CentOS: `6.4`, `6.5`)

I know this is nowhere near as cross-platform as the omnibus Chef installer is... but it at least works on these platforms for now:

- ubuntu-10.04 # lucid
- ubuntu-12.04 # precise
- ubuntu-13.10 # saucy
- ubuntu-14.04 # trusty
- centos-6.4
- centos-6.5

Here's the current state of our Ansible install cross-platform capability:

1. `test-kitchen` (nor any other kitchen-{chef,puppet,etc..} provisioner driver) does not appear to have any platform detection code, instead it relies on the omnibus Chef installer script to do it
2. There is no cross-platform capable ansible omnibus installer bash script I know of ([sl4mmy/omnibus-ansible][2] seems to only be for packaging... and depends on Ruby, so we could maybe use it on the test-kitchen host.. but not inside the VMs (I haven't tested this... just a theory))

Future TODO: Do better platform detection like Chef install script does by embedding platform detection script inside the kitchen-ansible driver.... OR: use some future omnibus ansible installer script...

[1]: http://www.ubuntu.com/info/release-end-of-life
[2]: https://github.com/sl4mmy/omnibus-ansible