aboutsummaryrefslogtreecommitdiffhomepage
path: root/debian9-onbuild
diff options
context:
space:
mode:
Diffstat (limited to 'debian9-onbuild')
-rw-r--r--debian9-onbuild/Dockerfile56
-rwxr-xr-xdebian9-onbuild/ansible-playbook-wrapper50
2 files changed, 106 insertions, 0 deletions
diff --git a/debian9-onbuild/Dockerfile b/debian9-onbuild/Dockerfile
new file mode 100644
index 0000000..079ebd9
--- /dev/null
+++ b/debian9-onbuild/Dockerfile
@@ -0,0 +1,56 @@
1# Dockerfile for building Ansible image for Debian 9 (stretch), with as few additional software as possible.
2#
3# @see https://launchpad.net/~ansible/+archive/ubuntu/ansible
4#
5# Version 1.0
6#
7
8
9# pull base image
10FROM debian:stretch
11
12MAINTAINER William Yeh <william.pjyeh@gmail.com>
13
14
15RUN echo "===> Installing python, sudo, and supporting tools..." && \
16 apt-get update -y && apt-get install --fix-missing && \
17 DEBIAN_FRONTEND=noninteractive \
18 apt-get install -y \
19 python python-yaml sudo \
20 curl gcc python-pip python-dev libffi-dev libssl-dev && \
21 apt-get -y --purge remove python-cffi && \
22 pip install --upgrade cffi && \
23 \
24 \
25 echo "===> Installing Ansible..." && \
26 pip install ansible && \
27 \
28 \
29 echo "===> Removing unused APT resources..." && \
30 apt-get -f -y --auto-remove remove \
31 gcc python-pip python-dev libffi-dev libssl-dev && \
32 apt-get clean && \
33 rm -rf /var/lib/apt/lists/* /tmp/* && \
34 \
35 \
36 echo "===> Adding hosts for convenience..." && \
37 mkdir -p /etc/ansible && \
38 echo 'localhost' > /etc/ansible/hosts
39
40
41COPY ansible-playbook-wrapper /usr/local/bin/
42
43ONBUILD RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
44 echo "===> Updating TLS certificates..." && \
45 apt-get install -y openssl ca-certificates
46
47ONBUILD WORKDIR /tmp
48ONBUILD COPY . /tmp
49ONBUILD RUN \
50 echo "===> Diagnosis: host information..." && \
51 ansible -c local -m setup all
52
53
54
55# default command: display Ansible version
56CMD [ "ansible-playbook", "--version" ]
diff --git a/debian9-onbuild/ansible-playbook-wrapper b/debian9-onbuild/ansible-playbook-wrapper
new file mode 100755
index 0000000..afe4d97
--- /dev/null
+++ b/debian9-onbuild/ansible-playbook-wrapper
@@ -0,0 +1,50 @@
1#!/bin/sh
2#
3# Simple wrapper for executing ansible-galaxy and ansible-playbook
4# with local connection.
5#
6# USAGE:
7# ansible-playbook-wrapper [other ansible-playbook arguments]
8#
9# ENVIRONMENT VARIABLES:
10#
11# - REQUIREMENTS: requirements filename; default = "requirements.yml"
12# - PLAYBOOK: playbook filename; default = "playbook.yml"
13# - INVENTORY: inventory filename; default = "/etc/ansible/hosts"
14#
15
16
17#
18# install Galaxy roles, if any
19#
20
21if [ -z "$REQUIREMENTS" ]; then
22 REQUIREMENTS=requirements.yml
23fi
24
25if [ -f "$REQUIREMENTS" ]; then
26 apt-get install -y git
27 ansible-galaxy install -r $REQUIREMENTS
28fi
29
30
31#
32# execute playbook
33#
34
35if [ -z "$PLAYBOOK" ]; then
36 PLAYBOOK=playbook.yml
37fi
38
39
40if [ -z "$INVENTORY" ]; then
41 exec ansible-playbook \
42 $PLAYBOOK \
43 --connection=local \
44 "$@"
45else
46 exec ansible-playbook \
47 -i $INVENTORY $PLAYBOOK \
48 --connection=local \
49 "$@"
50fi