blob: 96c07af1d130f23de580e4d7d6655c8cf485ff7d [file] [log] [blame]
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# Builds Metron platform jars, instantiates hosts, and deploys Metron to those
# hosts on Amazon EC2
#
LOGFILE="./ansible.log"
DEPLOYDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
EXTRA_ARGS="-v ${@:1}"
NOW=`date`
DEFAULT_ENV="metron-test"
DEFAULT_ENV_FILE="./.metron-env"
# ensure aws access key is defined
if [ -z "$AWS_ACCESS_KEY_ID" ]; then
echo "Error: missing AWS_ACCESS_KEY_ID"
exit 1
fi
# ensure aws access key is defined
if [ -z "$AWS_SECRET_ACCESS_KEY" ]; then
echo "Error: missing AWS_SECRET_ACCESS_KEY"
exit 1
fi
# retrieve environment name from previous run
if [ -f $DEFAULT_ENV_FILE ]; then
ENV=`cat $DEFAULT_ENV_FILE`
else
ENV=$DEFAULT_ENV
fi
# prompt the user for an environment name
read -p "Metron Environment [$ENV]: " INPUT
[ -n "$INPUT" ] && ENV=$INPUT
# store the environment name for the next run
echo "$ENV" > $DEFAULT_ENV_FILE
# log information about the host platform
echo "=============================================================" >> $LOGFILE
echo "Launching Metron[$ENV] @ $NOW"... >> $LOGFILE
$DEPLOYDIR/../scripts/platform-info.sh >> $LOGFILE
# deploy metron
cd $DEPLOYDIR
export EC2_INI_PATH=conf/ec2.ini
ansible-playbook -i ec2.py playbook.yml \
--skip-tags="sensor-stubs" \
--extra-vars="env=$ENV" \
$EXTRA_ARGS