aboutsummaryrefslogtreecommitdiffhomepage
path: root/centos6-onbuild
diff options
context:
space:
mode:
Diffstat (limited to 'centos6-onbuild')
-rw-r--r--centos6-onbuild/Dockerfile50
-rwxr-xr-xcentos6-onbuild/ansible-playbook-wrapper30
2 files changed, 80 insertions, 0 deletions
diff --git a/centos6-onbuild/Dockerfile b/centos6-onbuild/Dockerfile
new file mode 100644
index 0000000..cb96493
--- /dev/null
+++ b/centos6-onbuild/Dockerfile
@@ -0,0 +1,50 @@
1# Dockerfile for building Ansible image for CentOS 6, with as few additional software as possible.
2#
3# @see http://docs.ansible.com/intro_installation.html#latest-release-via-yum
4#
5# [NOTE] To fix the "sudo: sorry, you must have a tty to run sudo" issue,
6# we need to patch /etc/sudoers.
7# @see http://unix.stackexchange.com/questions/122616/why-do-i-need-a-tty-to-run-sudo-if-i-can-sudo-without-a-password
8# @see https://bugzilla.redhat.com/show_bug.cgi?id=1020147
9#
10# Version 1.0
11#
12
13
14# pull base image
15FROM centos:centos6
16
17MAINTAINER William Yeh <william.pjyeh@gmail.com>
18
19
20RUN echo "===> Installing EPEL..." && \
21 yum -y install epel-release && \
22 \
23 \
24 echo "===> Installing Ansible..." && \
25 yum -y install ansible sudo && \
26 \
27 \
28 echo "===> Disabling sudo 'requiretty' setting..." && \
29 sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers && \
30 \
31 \
32 echo "===> Removing unused YUM resources..." && \
33 yum -y remove epel-release && \
34 yum clean all && \
35 \
36 \
37 echo "===> Adding hosts for convenience..." && \
38 mkdir -p /etc/ansible && \
39 echo '[local]\nlocalhost\n' > /etc/ansible/hosts
40
41
42COPY ansible-playbook-wrapper /usr/local/bin/
43
44ONBUILD WORKDIR /tmp
45ONBUILD COPY . /tmp
46
47
48
49# default command: display Ansible version
50CMD [ "ansible-playbook", "--version" ]
diff --git a/centos6-onbuild/ansible-playbook-wrapper b/centos6-onbuild/ansible-playbook-wrapper
new file mode 100755
index 0000000..bf137c8
--- /dev/null
+++ b/centos6-onbuild/ansible-playbook-wrapper
@@ -0,0 +1,30 @@
1#!/bin/sh
2#
3# Simple wrapper for executing ansible-playbook with local connection.
4#
5# USAGE:
6# ansible-playbook-wrapper [other ansible-playbook arguments]
7#
8# ENVIRONMENT VARIABLES:
9#
10# - PLAYBOOK: playbook filename; default = "playbook.yml"
11# - INVENTORY: inventory filename; default = "/etc/ansible/hosts"
12#
13
14
15if [ -z "$PLAYBOOK" ]; then
16 PLAYBOOK=playbook.yml
17fi
18
19
20if [ -z "$INVENTORY" ]; then
21 exec ansible-playbook \
22 $PLAYBOOK \
23 --connection=local \
24 "$@"
25else
26 exec ansible-playbook \
27 -i $INVENTORY $PLAYBOOK \
28 --connection=local \
29 "$@"
30fi