docker-image-ansible/entrypoint.sh
Mauro Torrez 950065412e
All checks were successful
continuous-integration/drone/push Build is passing
commit dummy para lanzar CI
2019-09-18 20:37:25 -03:00

70 lines
3.1 KiB
Bash

#!/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 "${@}"