commit inicial

This commit is contained in:
Mauro Torrez 2019-09-18 20:34:42 -03:00
parent bdf7363c01
commit bc17fab010
4 changed files with 100 additions and 0 deletions

18
.drone.yml Normal file
View File

@ -0,0 +1,18 @@
---
kind: pipeline
name: default
steps:
- name: docker
image: plugins/docker
settings:
repo: eumau/ansible
auto_tag: true
username:
from_secret: dockerhub_username
password:
from_secret: dockerhub_password
when:
branch:
- master

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*~
\#*
.#*
*.bak

10
Dockerfile Normal file
View File

@ -0,0 +1,10 @@
FROM python:3.7-slim-buster
ARG ANSIBLE_VERSION=2.8.5
ADD entrypoint.sh /
RUN set -x \
&& chmod +x /entrypoint.sh \
&& pip3 install -U pip \
&& pip3 install ansible==${ANSIBLE_VERSION} \
&& rm -rf /root/.cache
VOLUME /ansible
ENTRYPOINT ["/entrypoint.sh"]

68
entrypoint.sh Normal file
View File

@ -0,0 +1,68 @@
#!/bin/bash
env
# first, try cloning git repo
[[ -z ${GIT_CLONE_URL} ]] || { git clone ${GIT_CLONE_URL} . ; }
# update
${GIT_PULL} && git pull
${GIT_SUBMODULE_UPDATE} && git submodule update
# cd into specified directory
[[ -n ${ANSIBLE_DIR} ]] && cd ${ANSIBLE_DIR}
# set ansible opts
ANSIBLE_CMD="ansible-playbook"
[[ ${VERSION,,} == "true" ]] && {
ansible-playbook --version
exit 0
}
[[ -n ${ANSIBLE_PLAYBOOK} ]] || {
echo "Please set the ANSIBLE_PLAYBOOK variable."
exit 1
}
[[ ${CHECK,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --check"
[[ ${DIFF,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --diff"
[[ -n ${EXTRA_VARS} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --extra-vars=${EXTRA_VARS}"
[[ ${FLUSH_CACHE,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --flush-cache"
[[ ${FORCE_HANDLERS,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --force-handlers"
[[ -n ${FORKS} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --forks=FORKS"
[[ -n ${INVENTORY:-inventory} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --inventory=${INVENTORY}"
[[ -n ${LIMIT} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --limit=${LIMIT}"
[[ ${LIST_HOSTS,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --list-hosts"
[[ ${LIST_TAGS,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --list-tags"
[[ ${LIST_TASKS,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --list-tasks"
[[ -n ${MODULE_PATH} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --module-path=${MODULE_PATH}"
[[ -n ${SKIP_TAGS} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --skip-tags=${SKIP_TAGS}"
[[ -n ${START_AT_TASK} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --start-at-task=${START_AT_TASK}"
[[ ${SYNTAX_CHECK,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --syntax-check"
[[ -n ${TAGS} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --tags=${TAGS}"
[[ -n ${VAULT_ID} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --vault-id=${VAULT_ID}"
[[ -n ${VAULT_PASSWORD_FILE} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --vault-password-file=${VAULT_PASSWORD_FILE}"
[[ ${VERBOSE} -gt 0 ]] && ANSIBLE_CMD="${ANSIBLE_CMD} -v"
[[ ${VERBOSE} -gt 1 ]] && ANSIBLE_CMD="${ANSIBLE_CMD}v"
[[ ${VERBOSE} -gt 2 ]] && ANSIBLE_CMD="${ANSIBLE_CMD}v"
[[ -n ${PRIVATE_KEY} ]] && {
echo "${PRIVATE_KEY}" > /tmp/ssh_private_key
chmod 600 /tmp/ssh_private_key
ANSIBLE_CMD="${ANSIBLE_CMD} --private-key=/tmp/ssh_private_key"
}
[[ -n ${USER} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --user=${REMOTE_USER}"
[[ -n ${CONNECTION} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --connection=${CONNECTION}"
[[ -n ${TIMEOUT} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --timeout=${TIMEOUT}"
[[ -n ${SSH_COMMON_ARGS} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --ssh-common-args=${SSH_COMMON_ARGS}"
[[ -n ${SFTP_EXTRA_ARGS} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --sftp-extra-args=${SFTP_EXTRA_ARGS}"
[[ -n ${SCP_EXTRA_ARGS} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --scp-extra-args=${SCP_EXTRA_ARGS}"
[[ -n ${SSH_EXTRA_ARGS} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --ssh-extra-args=${SSH_EXTRA_ARGS}"
[[ ${BECOME,,} == "true" ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --become"
[[ -n ${BECOME_METHOD} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --become-method=${BECOME_METHOD}"
[[ -n ${BECOME_USER} ]] && ANSIBLE_CMD="${ANSIBLE_CMD} --become-user=${BECOME_USER}"
${RUN_PLAYBOOK:-true} && {
exec "${ANSIBLE_CMD}"
exit ${?}
}
exec "${@}"