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) tolatestandalpineimage tags.linux/arm/v7andlinux/arm/v6toarmimage 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.ymlYou 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