Jenkins docker image for Ansible playbook and role testing.
This image is built on a personal Jenkins server automatically and push to Docker Hub. But should you wish to build the image locally, do the following:
- Install Docker.
cd
into this directory.- Run
./build.sh -r jenkins-ansible -t dev
Tip: Use $ ./build.sh --help
for help
- Install Docker.
- Pull this image from Docker Hub:
docker pull dankempster/jenkins-ansible:latest
(or use the image you built earlier, e.g.jenkins-ansible
). - Run a container from the image:
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro dankempster/jenkins-ansible:latest
(to test my Ansible roles, I add in a volume mounted from the current working directory with--volume=`pwd`:/etc/ansible/roles/role_under_test:ro
). - Use Ansible inside the container:
a.
docker exec --tty [container_id] env TERM=xterm ansible --version
b.docker exec --tty [container_id] env TERM=xterm ansible-playbook /path/to/ansible/playbook.yml --syntax-check
I use Docker to test my Ansible roles and playbooks on multiple OSes using CI tools like Jenkins and Travis. This container allows me to test roles and playbooks using Ansible running locally inside the container.
Important Note: I use this image for testing in an isolated environment—not for production—and the settings and configuration used may not be suitable for a secure and performant production environment. Use on production servers/in the wild at your own risk!
Inspired by work from Jeff Geerling, author of Ansible for DevOps. Modified by Dan Kempster.