70 lines
3.1 KiB
Bash
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 "${@}"
|
|
|