From 7cc3a44fef20fd573d2095ecaeb0c47d2b058479 Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Tue, 12 May 2020 16:19:42 +0200
Subject: [PATCH] ansible-inventories/arocom#2898 Add script to run ansible
 inside Docker container from console or cronjob

---
 tasks/main.yml       |  8 ++++++++
 templates/ansible.sh | 18 ++++++++++++++++++
 2 files changed, 26 insertions(+)
 create mode 100644 templates/ansible.sh

diff --git a/tasks/main.yml b/tasks/main.yml
index f941a84..66b00f4 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -36,4 +36,12 @@
         groups: docker
         append: yes
 
+    - name: Deply ansible script to run inside Docker
+      template:
+        src: ansible.sh
+        dest: /usr/local/bin/ansible
+        owner: root
+        group: root
+        mode: 0755
+
   when: not excluded_roles or "gitlab-runner" not in excluded_roles
diff --git a/templates/ansible.sh b/templates/ansible.sh
new file mode 100644
index 0000000..f4c7c69
--- /dev/null
+++ b/templates/ansible.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+COMPANY={{ lookup('env','ANSIBLE_COMPANY') }}
+DOCKERIFACE=$(/sbin/ifconfig docker0 2>/dev/null | grep 'inet addr:' | cut -d: -f2 | cut -d' ' -f1)
+if [ "x${DOCKERIFACE}" != "x" ]; then
+  FLUENTD="--env FLUENTD_SERVER=${DOCKERIFACE}"
+fi
+docker run \
+  --env ANSIBLE_LOG_PATH=/var/log/ansible/$COMPANY.log \
+  --env FLUENTD_COMPANY=$COMPANY \
+  ${FLUENTD} \
+  --env-file /home/gitlab-runner/.a/environment \
+  --volume /home/gitlab-runner/.ssh/id_rsa:/root/.ssh/id_rsa \
+  --volume /home/gitlab-runner/.a/variables.yml:/root/.ansible/secrets \
+  --volume /home/gitlab-runner/.a/inventories/$COMPANY:/root/.ansible \
+  --volume /var/log/ansible:/var/log/ansible \
+  registry.lakedrops.com/ansible-inventories/$COMPANY \
+  $@
-- 
GitLab