CentOS 7 Docker container for Ansible playbook and role testing.
This container is used to test Ansible roles and playbooks (e.g. with molecule) running locally inside the container.
A user ansible
is created with password-less sudo configured.
The following tags are available:
latest
: Latest stable version of Ansible, on Python 2.7.x.
If you need to build the image on your own locally, do the following:
- Install Docker.
- Clone the repository and
cd
into this directory. - Run
docker build -t centos7-ansible .
- Install Docker.
- Pull this image from Docker Hub or use the image you built earlier, e.g. called
centos7-ansible:latest
for the next step.
docker pull timgrt/centos7-ansible:latest
- You can also pull the image from the Github Container registry.
docker pull ghcr.io/timgrt/docker-centos7-ansible:main
- Run a container from the image. 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
.
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro timgrt/centos7-ansible:latest
- Use Ansible inside the container.
docker exec --tty [container_id] env TERM=xterm ansible --version
docker exec --tty [container_id] env TERM=xterm ansible-playbook /path/to/ansible/playbook.yml
- Install Docker.
- Install Molecule.
- Add Image in molecule.yml.
For example:
---
driver:
name: docker
platforms:
- name: centos7
image: timgrt/centos7-ansible:latest
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
privileged: true
command: "/usr/sbin/init"
pre_build_image: true
provisioner:
name: ansible
config_options:
defaults:
interpreter_python: auto_silent
callback_whitelist: profile_tasks, timer, yaml
stdout_callback: yaml
ssh_connection:
pipelining: false
inventory:
host_vars:
centos7:
ansible_user: ansible
Created 2021 by Tim Grützmacher, inspired by Jeff Geerling