Ansible inside Docker for consistent running of ansible inside your local machine or CI/CD system. You can view CHANGELOG to understand what changes have happened to this recently.
[][hub]
These are the latest Ansible versions running within the containers:
Dockerfile
linksAll installs include Mitogen mainly due to the performance improvements that Mitogen awards you. You can read more about it inside the Mitogen for Ansible documentation.
There are a number of immutable images that are also being collected. To find a specific version of Ansible, look within the Docker Hub Tags. Each of the containers follow a similar pattern: Ansible-version-Base OS version.
This includes ansible-core
+ ansible
.
2.12-alpine-3.16
Dockerfile2.12-alpine-3.15
Dockerfile2.12-alpine-3.14
Dockerfile2.12-alpine-3.13
Dockerfile2.12-alpine-3.12
Dockerfile2.12-ubuntu-22.04
Dockerfile2.12-ubuntu-20.04
Dockerfile2.12-bullseye
Dockerfile2.12-bullseye-slim
DockerfileThis includes ansible-core
+ ansible
.
latest
, alpine
, 2.11-alpine-3.15
Dockerfile2.11-alpine-3.16
Dockerfile2.11-alpine-3.14
Dockerfile2.11-alpine-3.13
Dockerfile2.11-alpine-3.12
Dockerfile2.11-ubuntu-22.04
Dockerfile2.11-ubuntu-20.04
Dockerfile2.11-ubuntu-18.04
Dockerfile2.11-rockylinux-8
Dockerfile2.11-bullseye
Dockerfile2.11-bullseye-slim
Dockerfile2.11-buster
Dockerfile2.11-buster-slim
Dockerfile2.11-stretch
Dockerfile2.11-stretch-slim
Dockerfile2.11-centos-7
Dockerfile2.11-centos-8
DockerfileThis includes ansible-base
.
2.10-alpine-3.16
Dockerfile2.10-alpine-3.15
Dockerfile2.10-alpine-3.14
Dockerfile2.10-alpine-3.13
Dockerfile2.10-alpine-3.12
Dockerfile2.10-ubuntu-22.04
Dockerfile2.10-ubuntu-20.04
Dockerfile2.10-ubuntu-18.04
Dockerfile2.10-rockylinux-8
Dockerfile2.10-bullseye
Dockerfile2.10-bullseye-slim
Dockerfile2.10-buster
Dockerfile2.10-buster-slim
Dockerfile2.10-stretch
Dockerfile2.10-stretch-slim
Dockerfile2.10-centos-7
Dockerfile2.10-centos-8
DockerfileThis runs the ansible
package.
2.9-alpine-3.16
Dockerfile2.9-alpine-3.15
Dockerfile2.9-alpine-3.14
Dockerfile2.9-alpine-3.13
Dockerfile2.9-alpine-3.12
Dockerfile2.9-ubuntu-22.04
Dockerfile2.9-ubuntu-20.04
Dockerfile2.9-ubuntu-18.04
Dockerfile2.9-rockylinux-8
Dockerfile2.9-bullseye
Dockerfile2.9-bullseye-slim
Dockerfile2.9-buster
Dockerfile2.9-buster-slim
Dockerfile2.9-stretch
Dockerfile2.9-stretch-slim
Dockerfile2.9-centos-7
Dockerfile2.9-centos-8
DockerfileTo leverage *Mitogen- to accelerate your playbook runs, add this to your ansible.cfg
:
Please investigate in your container the location of ansible_mitogen
(it is different per container). You can do this via:
your_container="ansible:latest"
docker run --rm -it "willhallonline/${your_container}" /bin/sh -c "find / -type d | grep "ansible_mitogen/plugins" | sort | head -n 1"
and then configuring your own ansible.cfg like:
[defaults]
strategy_plugins = /usr/local/lib/python3.7/site-packages/ansible_mitogen/plugins/
strategy = mitogen_linear
**You will likely need to mount required directories into your container to make it run (or build on top of what is here).
$~ docker run --rm -it willhallonline/ansible:latest /bin/sh
$~ docker run --rm -it -v $(pwd):/ansible -v ~/.ssh/id_rsa:/root/id_rsa willhallonline/ansible:latest /bin/sh
$~ docker run --rm -it -v $(pwd):/ansible -v ~/.ssh/id_rsa:/root/id_rsa willhallonline/ansible:latest ansible-playbook playbook.yml
You can put these inside your dotfiles (~/.bashrc or ~/.zshrc to make handy aliases).
alias docker-ansible-cli='docker run --rm -it -v $(pwd):/ansible -v ~/.ssh/id_rsa:/root/.ssh/id_rsa --workdir=/ansible willhallonline/ansible:latest /bin/sh'
alias docker-ansible-cmd='docker run --rm -it -v $(pwd):/ansible -v ~/.ssh/id_rsa:/root/.ssh/id_rsa --workdir=/ansible willhallonline/ansible:latest '
use with:
$~ docker-ansible-cli ansible-playbook -u playbook.yml
Connect on LinkedIn. Follow me on Twitter. Grab the RSS Feed