#!/bin/bash INVENTORY=ansible_hosts PLAYBOOK=run-one-role.yml ARGS="" REINSTALL=0 CWD=`pwd` IIAB_STATE_FILE=/etc/iiab/iiab_state.yml LOCAL_VARS_FILE=/etc/iiab/local_vars.yml if [ ! -f $PLAYBOOK ]; then echo "Exiting: IIAB Playbook not found." echo "Please run this in /opt/iiab/iiab (top level of the git repo)." exit 1 fi if [[ $# -eq 0 ]] ; then echo "Usage: ./runrole " echo "Usage: ./runrole --reinstall " echo echo "Optional 2nd parameter is full PATH/FILENAME for logging." echo "If omitted, /iiab-debug.log is used." exit 0 fi if [ "$1" == "--reinstall" ]; then ARGS="$ARGS -e reinstall=True" REINSTALL=1 shift 1 fi #if ! grep -q "^""$1""_install: True" $LOCAL_VARS_FILE; then # echo "ERROR: $LOCAL_VARS_FILE must contain '""$1""_install: True'" # exit 1 #fi # Needed for Stages 1-3 if not installed yet if [ ! -f $IIAB_STATE_FILE ]; then touch $IIAB_STATE_FILE fi #if ! grep -q $1_install $LOCAL_VARS_FILE; then # echo " $1_install: not found in $VARS" # echo " Please review $VARS and edit as required" # exit 1 #elif grep $1_install $LOCAL_VARS_FILE | grep -q --exclude "#" False; then # echo " $1_install: set to False found in $VARS" # echo " Please review $VARS and edit as required" # exit 1 #elif grep $1_install $LOCAL_VARS_FILE | grep -q "#"; then # echo " $1_install: commented out (#) in $VARS" # echo " Please review $VARS and edit as required" # exit 1 #else # if grep $1_install $LOCAL_VARS_FILE | grep -q --exclude "#" True; then # echo " $1_install: set to True found in $VARS" # echo " continuing...." # else # echo "somthing went wrong to get here" # exit 1 # fi #fi if [ "$REINSTALL" == "1" ]; then #if [ ! $1 == "internetarchive" ]; then # special handling if [ $1 == "calibre-web" ]; then # role directory & installed marker differ sed -i -e '/^calibreweb/d' $IIAB_STATE_FILE elif [ $1 == "httpd" ]; then # role directory & installed marker differ sed -i -e '/^apache/d' $IIAB_STATE_FILE elif [ $1 == "osm-vector-maps" ]; then # role directory & installed marker differ sed -i -e '/^osm_vector_maps/d' $IIAB_STATE_FILE #elif [ $1 == "bluetooth" ]; then # role directory & installed marker differ # sed -i -e '/^pan_bluetooth/d' $IIAB_STATE_FILE else sed -i -e "/^$1/d" $IIAB_STATE_FILE fi #fi fi if [ $# -eq 2 ]; then export ANSIBLE_LOG_PATH="$2" else export ANSIBLE_LOG_PATH="$CWD/iiab-debug.log" fi ansible -m setup -i $INVENTORY localhost ${ARGS} --connection=local | grep python ansible-playbook -i $INVENTORY $PLAYBOOK ${ARGS} --connection=local -e "role_to_run=$1"