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.
These are the latest Ansible Core versions running within the containers:
- Ansible 2.9: 2.9.27
- Ansible 2.10: 2.10.17
- Ansible 2.11: 2.11.12
- Ansible 2.12: 2.12.10
- Ansible 2.13: 2.13.11
- Ansible 2.14: 2.14.8
- Ansible 2.15: 2.15.2
- Currently, Ansible 2.12+ is not working on Centos 7, Centos 8, Rocky Linux 8, Debian Stretch, Debian Buster or Ubuntu 18.04 due to dependency on Python 3.8+.
- Currently, Ansible 2.13+ is not working on Ubuntu 20.04 due to dependency on Python 3.10+.
All 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
.
Base Image (↓) \ Ansible Version (→) | Dockerfile | 2.12 | 2.13 | 2.14 | 2.15 |
---|---|---|---|---|---|
Latest | Dockerfile | latest * |
|||
Alpine | Dockerfile | alpine * |
|||
Ubuntu | Dockerfile | ubuntu |
|||
Alpine 3.14 | Dockerfile | 2.12-alpine-3.14 |
2.13-alpine-3.14 |
2.14-alpine-3.14 |
2.15-alpine-3.14 |
Alpine 3.15 | Dockerfile | 2.12-alpine-3.15 |
2.13-alpine-3.15 |
2.14-alpine-3.15 |
2.15-alpine-3.15 |
Alpine 3.16 | Dockerfile | 2.12-alpine-3.16 |
2.13-alpine-3.16 |
2.14-alpine-3.16 |
2.15-alpine-3.16 |
Alpine 3.17 | Dockerfile | 2.12-alpine-3.17 |
2.13-alpine-3.17 |
2.14-alpine-3.17 |
2.15-alpine-3.17 |
Alpine 3.18 | Dockerfile | 2.12-alpine-3.18 |
2.13-alpine-3.18 |
2.14-alpine-3.18 |
2.15-alpine-3.18 |
Bullseye (Debian 11) | Dockerfile | 2.12-bullseye |
2.13-bullseye |
2.14-bullseye |
2.15-bullseye |
Bullseye Slim (Debian 11) | Dockerfile | 2.12-bullseye-slim |
2.13-bullseye-slim |
2.14-bullseye-slim |
2.15-bullseye-slim |
Rocky Linux 9 | Dockerfile | 2.12-rockylinux-9 |
2.13-rockylinux-9 |
2.14-rockylinux-9 |
2.15-rockylinux-9 |
Ubuntu 20.04 | Dockerfile | 2.12-ubuntu-20.04 |
2.13-ubuntu-20.04 |
||
Ubuntu 22.04 | Dockerfile | 2.12-ubuntu-22.04 |
2.13-ubuntu-22.04 |
2.14-ubuntu-22.04 |
2.15-ubuntu-22.04 |
There is some support for Arm architecture.
linux/arm64
(Macbook and AWS Graviton) tolatest
andalpine
image tags.linux/arm/v7
andlinux/arm/v6
toarm
image tag (Raspberry Pi).
- Ansible 2.11 includes
ansible-core
+ansible
. This also requires Python 3. - Ansible 2.10 includes
ansible-base
. - Ansible 2.9 includes
ansible
.
Base Image (↓) \ Ansible Version (→) | 2.11 | 2.10 | 2.9 |
---|---|---|---|
Alpine 3.14 | 2.11-alpine-3.14 Dockerfile |
2.10-alpine-3.14 Dockerfile |
2.9-alpine-3.14 Dockerfile |
Alpine 3.15 | 2.11-alpine-3.15 Dockerfile |
2.10-alpine-3.15 Dockerfile |
2.9-alpine-3.15 Dockerfile |
Alpine 3.16 | 2.11-alpine-3.16 Dockerfile |
2.10-alpine-3.16 Dockerfile |
2.9-alpine-3.16 Dockerfile |
Alpine 3.17 | 2.11-alpine-3.17 Dockerfile |
2.10-alpine-3.17 Dockerfile |
2.9-alpine-3.17 Dockerfile |
Bullseye (Debian 11) | 2.11-bullseye Dockerfile |
2.10-bullseye Dockerfile |
2.9-bullseye Dockerfile |
Bullseye Slim (Debian 11) | 2.11-bullseye-slim Dockerfile |
2.10-bullseye-slim Dockerfile |
2.9-bullseye-slim Dockerfile |
Buster (Debian 10) | 2.11-buster Dockerfile |
2.10-buster Dockerfile |
2.9-buster Dockerfile |
Buster Slim (Debian 10) | 2.11-buster-slim Dockerfile |
2.10-buster-slim Dockerfile |
2.9-buster-slim Dockerfile |
Centos 7 | 2.11-centos-7 Dockerfile |
2.10-centos-7 Dockerfile |
2.9-centos-7 Dockerfile |
Rocky Linux 8 | 2.11-rockylinux-8 Dockerfile |
2.10-rockylinux-8 Dockerfile |
2.9-rockylinux-8 Dockerfile |
Rocky Linux 9 | 2.11-rockylinux-9 Dockerfile |
2.10-rockylinux-9 Dockerfile |
2.9-rockylinux-9 Dockerfile |
Ubuntu 18.04 | 2.11-ubuntu-18.04 Dockerfile |
2.10-ubuntu-18.04 Dockerfile |
2.9-ubuntu-18.04 Dockerfile |
Ubuntu 20.04 | 2.11-ubuntu-20.04 Dockerfile |
2.10-ubuntu-20.04 Dockerfile |
2.9-ubuntu-20.04 Dockerfile |
Ubuntu 22.04 | 2.11-ubuntu-22.04 Dockerfile |
2.10-ubuntu-22.04 Dockerfile |
2.9-ubuntu-22.04 Dockerfile |
To 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.{python-version}/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
- Written and maintained by Will Hall