# Test Ansible roles and playbooks using Docker

**URL:** <https://forum.ansible.com/t/test-ansible-roles-and-playbooks-using-docker/20099>\
**Category:** Ansible Project\
**Tags:** ubuntu\
**Created:** [December 30, 2015, 3:05am UTC](https://forum.ansible.com/t/test-ansible-roles-and-playbooks-using-docker/20099 "2015-12-30T03:05:59Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![chrismeyersfsu](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/chrismeyersfsu/32/1016_2.png) [@chrismeyersfsu](https://forum.ansible.com/u/chrismeyersfsu)\
**Post date:** [December 30, 2015, 3:05am UTC](https://forum.ansible.com/t/test-ansible-roles-and-playbooks-using-docker/20099/1 "2015-12-30T03:05:59Z")

</div>

I’ve created a role, provision\_docker, to help test Ansible roles and playbooks. It’s [simple](https://github.com/chrismeyersfsu/provision_docker/blob/master/tasks/main.yml) and leverages Docker (not vms).

**Highlights:**

- Best practice [directory structure](https://github.com/chrismeyersfsu/provision_docker#recommended-role--testing-directory-structure)
- Test roles/playbooks using docker (spin up multiple hosts [[1]](https://github.com/chrismeyersfsu/role-install_mongod/blob/master/test/main.yml))
- Plays nicely with TravisCI, (see example repos below [[1]](https://github.com/chrismeyersfsu/role-install_mongod/blob/master/.travis.yml) [[2]](https://github.com/chrismeyersfsu/ansible_test_deps/blob/master/.travis.yml) [[3]](https://github.com/chrismeyersfsu/role-iptables/blob/master/.travis.yml) [[4]](https://github.com/chrismeyersfsu/role-devstack/blob/master/.travis.yml))
- Curated [Dockerfile’s](https://github.com/chrismeyersfsu/provision_docker/tree/master/files) centos 6/7 ubuntu 12.04/14.04 images w/ init system and ssh enabled  
**Example Uses:**

1. HA mongo [chrismeyersfsu/role-install\_mongod](https://github.com/chrismeyersfsu/role-install_mongod/tree/master/test)

2. Ansible hacking/development env bringup [chrismeyersfsu/ansible\_test\_deps](https://github.com/chrismeyersfsu/ansible_test_deps/tree/master/test)

3. iptables [chrismeyersfsu/role-iptables](https://github.com/chrismeyersfsu/role-iptables/tree/master/test)

4. devstack (openstack on a single machine) [chrismeyersfsu/role-devstack](https://github.com/chrismeyersfsu/role-devstack/tree/master/test)

Feedback welcome!

[![](https://i.imgflip.com/wjpkl.jpg)](https://i.imgflip.com/wjpkl.jpg)
