Skip to content

ccoley/docker-ansible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ansible Image

This repo builds a Docker image containing Ansible and common dependencies for use as an isolated execution environment.

Tags

Images are tagged with the version of ansible-core included in the image. There are also python<version> tags if you need to support managed nodes running specific versions of Python.

  • 2.18, python3.8, latest
  • 2.16, python2.7, python3.6 EOL, but kept around for use with managed nodes that only support Python 2.7 or Python 3.6
  • 2.10 EOL, but kept around for playbooks that only work with classic Ansible
  • 2.9 EOL, but kept around for playbooks that only work with classic Ansible

Usage

The working directory is /ansible, so mount your ansible playbooks and inventory files into that directory.

docker run --rm -it -v $(pwd):/ansible ccoley/ansible:latest ansible -m ping all

If you want to use any files/directories in your home directory from within the container, then you can mount them to /tmp/home in the container and they'll be copied to the container user's home directory. This is useful for SSH keys and known_hosts, auth configurations, etc.

docker run --rm -it -v $(pwd):/ansible -v ~/.ssh:/tmp/home/.ssh:ro ccoley/ansible:latest ansible -m ping all

Building Images Locally

Build the standard image:

docker build .

Build an image that supports Python 3.8 on the managed node, which is the version of Python shipped with Ubuntu 20.04:

docker build --build-arg ALPINE_VERSION=3.21 --build-arg ANSIBLE_VERSION=2.18 .

Build an image that supports Python 2.7/3.6 on the managed node:

docker build --build-arg ALPINE_VERSION=3.19 --build-arg ANSIBLE_VERSION=2.16 .