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