#!/bin/bash set -e cd "$(dirname "$0")" echo "----------------------------------------------------------------" echo "Ansible cron task started on: `date`" echo "----------------------------------------------------------------" PLAYBOOK=$1 LIMIT=$2 EXTRA=$3 EMAIL_FROM="ansible@dualinventive.com" EMAIL_TO="dev-operations@dualinventive.com" if [ "${PLAYBOOK}" == "" ]; then echo "No playbook provided!" echo " usage: $0 [] []" exit 1 fi source environment tmplogfile=$(mktemp) trap 'rm -f "$tmplogfile"' EXIT INT TERM HUP ansible-playbook -b playbooks/${PLAYBOOK} --limit="${LIMIT}" $EXTRA 2>&1 | tee "$tmplogfile" set +e tail -50 $tmplogfile | grep -q 'failed=[1-9]\|unreachable=[1-9]' RET=$? if [[ "$RET" == "0" ]]; then cat $tmplogfile | ./files/tools/mailer -from $EMAIL_FROM -subject 'Ansible cron failure' -to $EMAIL_TO fi rm -f "$tmplogfile"