| @@ -1,58 +1,58 @@ | |||||
| #!/usr/bin/env bash | |||||
| # ENV Vars: | |||||
| # VAGRANT_MODE - [0,1] | |||||
| # - to be used with bovine-inventory's vagrant mode | |||||
| # ANSIBLE_RUN_MODE - ["playbook","ad-hoc"] | |||||
| # - specify which mode to run ansible in | |||||
| # ANSIBLE_PLAYBOOK_FILE - defaults to "infra.yml" | |||||
| # - specify playbook to pass to ansible-playbook | |||||
| # - NB: only used when run mode is "playbook" | |||||
| # ANSIBLE_BASE_ARA - ["0","1"] | |||||
| # - a bash STRING (not numeral) to enable ARA | |||||
| # VAULT_PASSWORD_FILE - | |||||
| export ANSIBLE_RUN_MODE="${ANSIBLE_RUN_MODE:-playbook}" | |||||
| export ANSIBLE_PLAYBOOK_FILE="${ANSIBLE_PLAYBOOK_FILE:-infra.yml}" | |||||
| export VAULT_PASSWORD_FILE="${VAULT_PASSWORD_FILE:-${HOME}/.ssh/creds/vault_password.txt}" | |||||
| export VAGRANT_MODE="${VAGRANT_MODE:-0}" | |||||
| run_ansible() { | |||||
| INOPTS=( "$@" ) | |||||
| VAULTOPTS="" | |||||
| # Plaintext vault decryption key, not checked into SCM | |||||
| if [ -f "${VAULT_PASSWORD_FILE}" ]; then | |||||
| VAULTOPTS="--vault-password-file=${VAULT_PASSWORD_FILE}" | |||||
| if [ ${ANSIBLE_RUN_MODE} == 'playbook' ]; then | |||||
| time ansible-playbook --diff ${VAULTOPTS} "${ANSIBLE_PLAYBOOK_FILE}" "${INOPTS[@]}" | |||||
| return $? | |||||
| elif [ ${ANSIBLE_RUN_MODE} == 'ad-hoc' ]; then | |||||
| time ansible --diff ${VAULTOPTS} "${INOPTS[@]}" | |||||
| return $? | |||||
| fi | |||||
| else | |||||
| if [ "${ANSIBLE_RUN_MODE}" == 'playbook' ]; then | |||||
| echo "Vault password file unreachable. Skip steps require vault." | |||||
| VAULTOPTS="--skip-tags=requires_vault" | |||||
| #echo "ansible-playbook --diff $VAULTOPTS ${INOPTS[@]} ${ANSIBLE_PLAYBOOK_FILE}" && \ | |||||
| time ansible-playbook --diff ${VAULTOPTS} "${ANSIBLE_PLAYBOOK_FILE}" "${INOPTS[@]}" | |||||
| return $? | |||||
| elif [ "${ANSIBLE_RUN_MODE}" == 'ad-hoc' ]; then | |||||
| #echo "ansible --diff $VAULTOPTS ${INOPTS[@]}" && \ | |||||
| time ansible --diff ${VAULTOPTS} "${INOPTS[@]}" | |||||
| return $? | |||||
| else | |||||
| echo "Invalid run mode: ${ANSIBLE_RUN_MODE}" | |||||
| exit 15 | |||||
| fi | |||||
| fi | |||||
| } | |||||
| if [ "${VAGRANT_MODE}" -eq 1 ]; then | |||||
| export ANSIBLE_SSH_ARGS="-o UserKnownHostsFile=/dev/null" | |||||
| export ANSIBLE_HOST_KEY_CHECKING=false | |||||
| fi | |||||
| run_ansible "$@" | |||||
| retcode=$? | |||||
| exit $retcode | |||||
| #!/usr/bin/env bash | |||||
| # ENV Vars: | |||||
| # VAGRANT_MODE - [0,1] | |||||
| # - to be used with bovine-inventory's vagrant mode | |||||
| # ANSIBLE_RUN_MODE - ["playbook","ad-hoc"] | |||||
| # - specify which mode to run ansible in | |||||
| # ANSIBLE_PLAYBOOK_FILE - defaults to "infra.yml" | |||||
| # - specify playbook to pass to ansible-playbook | |||||
| # - NB: only used when run mode is "playbook" | |||||
| # ANSIBLE_BASE_ARA - ["0","1"] | |||||
| # - a bash STRING (not numeral) to enable ARA | |||||
| # VAULT_PASSWORD_FILE - | |||||
| export ANSIBLE_RUN_MODE="${ANSIBLE_RUN_MODE:-playbook}" | |||||
| export ANSIBLE_PLAYBOOK_FILE="${ANSIBLE_PLAYBOOK_FILE:-infra.yml}" | |||||
| export VAULT_PASSWORD_FILE="${VAULT_PASSWORD_FILE:-${HOME}/.ssh/creds/vault_password.txt}" | |||||
| export VAGRANT_MODE="${VAGRANT_MODE:-0}" | |||||
| run_ansible() { | |||||
| INOPTS=( "$@" ) | |||||
| VAULTOPTS="" | |||||
| # Plaintext vault decryption key, not checked into SCM | |||||
| if [ -f "${VAULT_PASSWORD_FILE}" ]; then | |||||
| VAULTOPTS="--vault-password-file=${VAULT_PASSWORD_FILE}" | |||||
| if [ ${ANSIBLE_RUN_MODE} == 'playbook' ]; then | |||||
| time ansible-playbook --diff ${VAULTOPTS} "${ANSIBLE_PLAYBOOK_FILE}" "${INOPTS[@]}" | |||||
| return $? | |||||
| elif [ ${ANSIBLE_RUN_MODE} == 'ad-hoc' ]; then | |||||
| time ansible --diff ${VAULTOPTS} "${INOPTS[@]}" | |||||
| return $? | |||||
| fi | |||||
| else | |||||
| if [ "${ANSIBLE_RUN_MODE}" == 'playbook' ]; then | |||||
| echo "Vault password file unreachable. Skip steps require vault." | |||||
| VAULTOPTS="--skip-tags=requires_vault" | |||||
| #echo "ansible-playbook --diff $VAULTOPTS ${INOPTS[@]} ${ANSIBLE_PLAYBOOK_FILE}" && \ | |||||
| time ansible-playbook --diff ${VAULTOPTS} "${ANSIBLE_PLAYBOOK_FILE}" "${INOPTS[@]}" | |||||
| return $? | |||||
| elif [ "${ANSIBLE_RUN_MODE}" == 'ad-hoc' ]; then | |||||
| #echo "ansible --diff $VAULTOPTS ${INOPTS[@]}" && \ | |||||
| time ansible --diff ${VAULTOPTS} "${INOPTS[@]}" | |||||
| return $? | |||||
| else | |||||
| echo "Invalid run mode: ${ANSIBLE_RUN_MODE}" | |||||
| exit 15 | |||||
| fi | |||||
| fi | |||||
| } | |||||
| if [ "${VAGRANT_MODE}" -eq 1 ]; then | |||||
| export ANSIBLE_SSH_ARGS="-o UserKnownHostsFile=/dev/null" | |||||
| export ANSIBLE_HOST_KEY_CHECKING=false | |||||
| fi | |||||
| run_ansible "$@" | |||||
| retcode=$? | |||||
| exit $retcode | |||||