Ansible in Docker, fully compatible with Docker for Windows
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Build Status

Ansible, Terraform and OpenStack CLI in Docker Fully compatible with Docker for Windows

Before we begin please note the <> just indicate values you need to replace with your own. Do not use < or > in your commands.

Included packages:

emacs vim nano git python2 python3 python-pip wget curl net-tools iputils sshpass ansible pywinrm

To pre load SSH keys, inventory files, and OpenStack:

You can load your SSH private keys files by placing them in the SSH directory. NOTE: Vagrant's insecure_private_key is included for provisioning vagrant boxes. You can load your Ansible hosts inventory file by placing it in the HOSTS directory. You can load your group_vars inventory files by placing them in the GROUP_VARS directory. You can load your host_vars inventory files by placing them in the HOST_VARS directory. You can load your OpenStack account clouds.yaml and OpenStack account secrets file secure.yaml by placing them in the OPENSTACK directory. Instructions to configure the OpenStack CLI

NOTE: You can use Ansible Vault to encrypt and decrypt files containing secrets.

  • Ansible Vault is included with Ansible. To install the latest version of Ansible on Ubuntu 16.04 / Linux Subsystem for Windows:
sudo apt update && sudo apt -y upgrade && sudo apt -y install software-properties-common && sudo apt-add-repository ppa:ansible/ansible && sudo apt -y update && sudo apt -y install ansible && ansible --version
  • In the Dockerfile, the password file is: .password.txt

  • To encrypt a file

ansible-vault encrypt <path to file> --vault-password-file <path to password file>
  • To decrypt a file
ansible-vault decrypt <path to file> --vault-password-file <path to password file>

To build the container:

docker build -t <image tag>:<image version number> .

The image tag and version number can be anything you want. For example, if you want to use: ansible:latest, your build command would be: docker build -t ansible:latest .

To run the container:

docker run -i -t --name <container name> -h <container hostname> -v <host directory>:<container directory> <image tag>:<image version number> /bin/bash

NOTE: If you are using Docker on Windows, you will have to use UNIX style / instead of \ to specify the host directory. For example: c:/Users/hauptj/Docker/ansible/volumes

NOTE: You can mount your current working directory using the cross platform ${PWD} variable. For example:

docker run -i -t --name ansible -h ansible -v ${PWD}:/data ansible:latest /bin/bash

SEE: Mount current directory as volume in Docker on Windows 10

Pre-built container:

You can download a pre-built version of this container from the public Docker repository by running:

docker pull hauptj/ansible-terraform