These are Docker images for [Ansible](https://github.com/ansible/ansible) software, installed in a selected Linux distributions.
-- OS: Debian (jessie, wheezy), Ubuntu (trusty, precise), CentOS (7, 6)
+- OS: Debian (jessie, wheezy), Ubuntu (trusty, precise), CentOS (7, 6), Alpine (3).
-- Ansible: usually the latest version.
+- Ansible: usually the latest version (I didn't pin any specific version).
## Images and tags
-- normal series:
+- Normal series:
- `williamyeh/ansible:debian8`
- `williamyeh/ansible:debian7`
- `williamyeh/ansible:ubuntu12.04`
- `williamyeh/ansible:centos7`
- `williamyeh/ansible:centos6`
+ - `williamyeh/ansible:alpine3`
-- onbuild series:
+- Onbuild series:
- `williamyeh/ansible:debian8-onbuild`
- `williamyeh/ansible:debian7-onbuild`
- `williamyeh/ansible:ubuntu12.04-onbuild`
- `williamyeh/ansible:centos7-onbuild`
- `williamyeh/ansible:centos6-onbuild`
+ - `williamyeh/ansible:alpine3-onbuild`
## For the impatient
```
FROM williamyeh/ansible:ubuntu14.04-onbuild
-# ==> Specify playbook filename; default = "playbook.yml"
-#ENV PLAYBOOK playbook.yml
+# ==> Specify requirements filename; default = "requirements.yml"
+#ENV REQUIREMENTS requirements.yml
-# ==> Specify inventory filename; default = "/etc/ansible/hosts"
-#ENV INVENTORY inventory.ini
+# ==> Specify playbook filename; default = "playbook.yml"
+#ENV PLAYBOOK playbook.yml
+
+# ==> Specify inventory filename; default = "/etc/ansible/hosts"
+#ENV INVENTORY inventory.ini
# ==> Executing Ansible...
RUN ansible-playbook-wrapper
Done!
-For more advanced usage, the role in Ansible Galaxy [`williamyeh/nginx`](https://galaxy.ansible.com/list#/roles/2245) also demonstrates how to do a simple integration test for a variety of Linux distributions on [Travis CI](https://travis-ci.org/)’s Ubuntu 12.04 worker instances.
+For more advanced usage, the role in Ansible Galaxy [`williamyeh/nginx`](https://galaxy.ansible.com/list#/roles/2245) demonstrates how to perform a simple smoke test (*configuration needs test, too!*) on a variety of (*containerized*) Linux distributions via [CircleCI](https://circleci.com/)'s Ubuntu 12.04 and [Travis CI](https://travis-ci.org/)’s Ubuntu 14.04 worker instances.
Therefore, I built these Docker images on my own.
+**NOTE:** [`ansible/ansible-docker-base`](https://github.com/ansible/ansible-docker-base) announced in September 2015: “Ansible no longer maintains images in Dockerhub directly.”
### Comparison: image size
ansible/centos7-ansible stable 367.5 MB
ansible/ubuntu14.04-ansible stable 286.6 MB
+williamyeh/ansible alpine3-onbuild 66.4 MB
williamyeh/ansible centos6-onbuild 264.2 MB
williamyeh/ansible centos7-onbuild 275.3 MB
williamyeh/ansible debian7-onbuild 134.4 MB
## Usage
-Used mostly as a *base image* for configuring, with Ansible, other software stack on some specified Linux distribution.
+Used mostly as a *base image* for configuring other software stack on some specified Linux distribution(s).
Take Debian/Ubuntu/CentOS for example. To test an Ansible `playbook.yml` against a variety of Linux distributions, we may use [Vagrant](https://www.vagrantup.com/) as follows:
# ==> Choose a Vagrant box to emulate Linux distribution...
config.vm.box = "ubuntu/trusty64"
- #config.vm.box = "hashicorp/precise64"
- #config.vm.box = "chef/debian-7.8"
- #config.vm.box = "chef/centos-7.0"
- #config.vm.box = "chef/centos-6.6"
+ #config.vm.box = "ubuntu/precise64"
+ #config.vm.box = "debian/jessie64"
+ #config.vm.box = "debian/wheezy64"
+ #config.vm.box = "bento/centos-7.1"
+ #config.vm.box = "bento/centos-6.7"
+ #config.vm.box = "maier/alpine-3.1.3-x86_64"
# ==> Executing Ansible...
#FROM williamyeh/ansible:debian7
#FROM williamyeh/ansible:centos7
#FROM williamyeh/ansible:centos6
+#FROM williamyeh/ansible:alpine3
# ==> Copying Ansible playbook...
#FROM williamyeh/ansible:debian7-onbuild
#FROM williamyeh/ansible:centos7-onbuild
#FROM williamyeh/ansible:centos6-onbuild
+#FROM williamyeh/ansible:alpine3-onbuild
+
+# ==> Specify requirements filename; default = "requirements.yml"
+#ENV REQUIREMENTS requirements.yml
-# ==> Specify playbook filename; default = "playbook.yml"
-#ENV PLAYBOOK playbook.yml
+# ==> Specify playbook filename; default = "playbook.yml"
+#ENV PLAYBOOK playbook.yml
-# ==> Specify inventory filename; default = "/etc/ansible/hosts"
-#ENV INVENTORY inventory.ini
+# ==> Specify inventory filename; default = "/etc/ansible/hosts"
+#ENV INVENTORY inventory.ini
# ==> Executing Ansible...
RUN ansible-playbook-wrapper