blob: 8180ae2a8136b9e638243ac68b8116c7393421d0 [file] [log] [blame]
#!/bin/bash
# @@@ START COPYRIGHT @@@
#
# 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.
#
# @@@ END COPYRIGHT @@@
# Script that prompts user for all user input needed for the
# trafodion_config file
#==============================================
# Defaults
suseLinux=$(grep -cr SUSE /proc/version)
LOCAL_WORKDIR="$( cd "$( dirname "$0" )" && pwd )"
TRAF_WORKDIR="/usr/lib/trafodion"
TRAF_CONFIG="/etc/trafodion/trafodion_config"
TRAF_CONFIG_DIR=$(dirname $TRAF_CONFIG)
LOCAL_TRAF_CONFIG="$LOCAL_WORKDIR/trafodion_config"
TRAF_USER="trafodion"
TRAF_USER_PASSWORD="traf123" # must be 6-8 chars
userForTrafodion=`grep "$TRAF_USER:" /etc/passwd | wc -l`
NODE_LIST=""
HOME_DIR="/home"
TRAF_PACKAGE=""
TRAF_BUILD=""
DCS_BUILD=""
REST_BUILD=""
HADOOP_TYPE=""
ADMIN="admin"
PASSWORD="admin"
URL=""
HADOOP_NODES=""
HADOOP_PREFIX=""
HBASE_HOME=""
HIVE_HOME=""
HDFS_USER="hdfs"
HBASE_USER="hbase"
HBASE_GROUP="hbase"
ZOO_USER="zookeeper"
TRAF_HOME=""
INIT_TRAFODION="N"
START="N"
SQCONFIG=""
DCS_SERVERS_PARM="2"
ENABLE_HA="false"
FLOATING_IP=""
BACKUP_DCS_NODES=""
SCANNER_MODE="N"
DCS_PRIMARY_MASTER_NODE=`hostname -f`
DCS_MASTER_PORT="23400"
DCS_MASTER_HOST="$DCS_PRIMARY_MASTER_NODE"
CLOUD_CONFIG="N"
CLOUD_TYPE=""
AWS_CLOUD=""
OPEN_STACK=""
OTHER_CLOUD=""
MANAGEMENT_ENABLED="N"
MANAGEMENT_NODES=""
#==============================================
function print_usage {
cat << EOF
This script takes in user input to add to the trafodion_config file or uses known
defaults. Script will return an error if user enters bad inputs. Type response or
select [Enter] to select default.
Inputs Requested:
*Trafodion Password (default is [$TRAF_USER_PASSWORD])
*List of Nodes
*Home directory (default is [$HOME_DIR])
*Is cluster on the cloud (default is [No])
*Location of EPEL RPM (default is [None])
*Full path to Trafodion Server tar file
(default is [$TRAF_BUILD])
*Hadoop distribution user name (default is [$ADMIN])
*Hadoop distribution password (default is [$PASSWORD])
*Hadoop distribution url (default is distribution dependent)
*HDFS username (default is [$HDFS_USER])
*HBase username (default is [$HBASE_USER])
*HBase group (default is [$HBASE_GROUP])
*Full pathname to the install directory location (default [$TRAF_HOME])
*Full pathname to the DNS build tar file (default [$DCS_BUILD])
*Start Trafodion after install (default is [No])
*Total number of DCS servers to start
Options:
--help Print this message and exit.
EOF
}
#==============================================
#Parse input parameters
while [[ $# -gt 0 ]]; do
case "$1" in
--scanner_mode)
SCANNER_MODE="Y"
;;
--help)
print_usage
exit -1
;;
*)
echo "***ERROR: unknown parameter '$1'"
print_usage
exit -1
esac
shift
done
#==============================================
echo
echo "************************************"
echo " Trafodion Configuration File Setup"
echo "************************************"
echo
echo "***INFO: Please press [Enter] to select defaults."
echo
sudo mkdir -p $TRAF_WORKDIR
sudo chmod 777 $TRAF_WORKDIR
# if there was a partial config file then use it
# to fill in default values so user doesn't have to retype
# everything again.
if [ -f $LOCAL_TRAF_CONFIG ]; then
source $LOCAL_TRAF_CONFIG
fi
if [[ -f $TRAF_CONFIG ]]; then
source $TRAF_CONFIG
fi
if [[ "$suseLinux" -ge "1" ]]; then
SUSE_LINUX="true"
else
SUSE_LINUX="false"
fi
echo "#!/bin/bash" > $LOCAL_TRAF_CONFIG
echo "export SUSE_LINUX=\"$SUSE_LINUX\"" >> $LOCAL_TRAF_CONFIG
echo "export TRAF_USER=\"$TRAF_USER\"" >> $LOCAL_TRAF_CONFIG
echo "export TRAF_WORKDIR=\"$TRAF_WORKDIR\"" >> $LOCAL_TRAF_CONFIG
echo "export LOCAL_WORKDIR=\"$LOCAL_WORKDIR\"" >> $LOCAL_TRAF_CONFIG
echo "export SQCONFIG=\"$SQCONFIG\"" >> $LOCAL_TRAF_CONFIG
#==============================================
#Check if customer is using cloud environment and get the type of cloud being used
#Get the CLOUD_CONFIG and CLOUD_TYPE
echo -n "Is this a cloud environment (Y/N), default is [$CLOUD_CONFIG]: "
read answer
if [ ! -z $answer ]; then
if [[ "${answer}" =~ ^[Yy]$ ]]; then
CLOUD_CONFIG="Y"
fi
fi
echo "export CLOUD_CONFIG=\"$CLOUD_CONFIG\"" >> $LOCAL_TRAF_CONFIG
if [[ "$CLOUD_CONFIG" == "Y" ]]; then
echo -n "Specify the type of cloud being used (1: AWS(Amazon cloud), 2: OpenStack, 3: Other): "
read answer1
if [[ -z "$answer1" ]]; then
echo "***ERROR: User must specify the type of Cloud being used."
exit -1
else
CLOUD_TYPE=$answer1
fi
echo "export CLOUD_TYPE=\"$CLOUD_TYPE\"" >> $LOCAL_TRAF_CONFIG
case "$CLOUD_TYPE" in
1) AWS_CLOUD=true
echo "export AWS_CLOUD=\"$AWS_CLOUD\"" >> $LOCAL_TRAF_CONFIG
;;
2) OPEN_STACK=true
echo "export OPEN_STACK=\"$OPEN_STACK\"" >> $LOCAL_TRAF_CONFIG
;;
3) CLOUD_OTHER=true
echo "export CLOUD_OTHER=\"$CLOUD_OTHER\"" >> $LOCAL_TRAF_CONFIG
esac
fi
#==============================================
# Password
echo -n "Enter $TRAF_USER password, default is [$TRAF_USER_PASSWORD]: "
read answer
if [ -z $answer ]; then
echo "export TRAF_USER_PASSWORD=\"$TRAF_USER_PASSWORD\"" >> $LOCAL_TRAF_CONFIG
else
echo "export TRAF_USER_PASSWORD=\"$answer\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
# List of Nodes
echo -n "Enter list of data nodes (blank separated), default [$NODE_LIST]: "
read answer
if [[ -z "$answer" ]]; then
if [ -z "$NODE_LIST" ]; then
echo "***ERROR: Must enter list of nodes."
exit -1
fi
else
NODE_LIST="$answer"
fi
echo "export NODE_LIST=\"$NODE_LIST\"" >> $LOCAL_TRAF_CONFIG
node_count=$(echo $NODE_LIST | wc -w)
#==============================================
echo -n "Do you have a set of management nodes (Y/N), default is N: "
read answer
if [[ "${answer}" =~ ^[Yy]$ ]]; then
echo "export MANAGEMENT_ENABLED=\"Y\"" >> $LOCAL_TRAF_CONFIG
#List of Management Nodes
echo -n "Enter list management nodes (blank separated), default [$MANAGEMENT_NODES]: "
read answer
if [[ -z "$answer" ]]; then
if [ -z "$MANAGEMENT_NODES" ]; then
echo "***ERROR: Management nodes must be specified."
exit -1
fi
else
MANAGEMENT_NODES="$answer"
echo "export MANAGEMENT_NODES=\"$MANAGEMENT_NODES\"" >> $LOCAL_TRAF_CONFIG
fi
else
echo "export MANAGEMENT_ENABLED=\"N\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
# Home directory
if [[ "$userForTrafodion" == "0" ]]; then
echo -n "Enter Trafodion userid's home directory prefix, default is [$HOME_DIR]: "
read answer
if [ ! -z $answer ]; then
# strip off TRAF_USER if user added it on end of directory
HOME_DIR=$(echo "$answer" | sed -e "s@/$TRAF_USER\$@@")
fi
else
HOME_DIR=$(grep -r "trafodion" /etc/passwd | sed 's/.*:://' | sed 's/\:.*$//' | sed 's/\/trafodion.*$//')
fi
echo "export HOME_DIR=\"$HOME_DIR\"" >> $LOCAL_TRAF_CONFIG
#==============================================
#Check location given for Java 65 or greater
echo -n "Specify location of Java 1.7.0_65 or higher (JDK), default is [$JAVA_HOME]: "
read answer
if [ -z $answer ]; then
if [ -z $JAVA_HOME ]; then
echo "***ERROR: Must specify location of Java 1.7.0_65 or higher (JDK)."
exit -1
fi
else
JAVA_HOME=$answer
fi
echo "export JAVA_HOME=\"$JAVA_HOME\"" >> $LOCAL_TRAF_CONFIG
#==============================================
# Trafodion Build location
# set the following based on what the user provided as input
# TRAF_PACKAGE = the trafodion package tar file which contains trafodion core & dcs
# TRAF_BUILD = the trafodion core tar file extracted from the trafodion package
# DCS_BUILD = the dcs tar file extracted from the trafodion package
# 05/10/2016
if [ -z "$TRAF_PACKAGE" ]; then
TRAF_DEFAULT="$TRAF_BUILD"
else
TRAF_DEFAULT="$TRAF_PACKAGE"
fi
echo -n "Enter full path (including .tar or .tar.gz) of trafodion tar file [$TRAF_DEFAULT]: "
read answer
if [ -z $answer ] && [ -z $TRAF_DEFAULT ]; then
echo "***ERROR: Must specify Trafodion tar file location."
exit -1
fi
if [ ! -z "$answer" ]; then
TRAF_PACKAGE="$answer"
else
TRAF_PACKAGE="$TRAF_DEFAULT"
fi
# make sure file exists
if [ ! -f $TRAF_PACKAGE ]; then
echo "***ERROR: $TRAF_PACKAGE does not exist"
exit -1
fi
# Determine if we have a package that was created before 05/10/2016.
# Tar files created after 05/10/2016 are no longer a tar of tar packages
# but just one tar file.
package=$(tar -tzf $TRAF_PACKAGE | grep build-version.txt | wc -l )
if [ $package -eq 0 ]; then
ONE_TAR_INSTALL="Y"
TRAF_BUILD=""
DCS_BUILD=""
REST_BUILD=""
else
# user specifed a package file
ONE_TAR_INSTALL="N"
TRAF_BUILD=""
DCS_BUILD=""
REST_BUILD=""
fi
echo "export TRAF_PACKAGE=\"$TRAF_PACKAGE\"" >> $LOCAL_TRAF_CONFIG
echo "export TRAF_BUILD=\"$TRAF_BUILD\"" >> $LOCAL_TRAF_CONFIG
echo "export DCS_BUILD=\"$DCS_BUILD\"" >> $LOCAL_TRAF_CONFIG
echo "export REST_BUILD=\"$REST_BUILD\"" >> $LOCAL_TRAF_CONFIG
echo "export ONE_TAR_INSTALL=\"$ONE_TAR_INSTALL\"" >> $LOCAL_TRAF_CONFIG
#==============================================
#Backup restore user
export BACKUP_USER="trafodion"
echo -n "Enter Backup/Restore username (can be Trafodion), default is [$BACKUP_USER]: "
read answer
if [ -z $answer ]; then
echo "export BACKUP_USER=\"$BACKUP_USER\"" >> $LOCAL_TRAF_CONFIG
else
echo "export BACKUP_USER=\"$answer\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
#Enter Hadoop Type
echo -n "Specify the Hadoop distribution installed (1: Cloudera, 2: Hortonworks, 3: Other): "
read answer1
if [[ -z "$answer1" ]]; then
echo "***ERROR: User must specify the version of Hadoop being used."
exit -1
fi
case "$answer1" in
1) HADOOP_TYPE="cloudera"
echo "export HADOOP_TYPE=\"$HADOOP_TYPE\"" >> $LOCAL_TRAF_CONFIG
;;
2) HADOOP_TYPE="hortonworks"
echo "export HADOOP_TYPE=\"$HADOOP_TYPE\"" >> $LOCAL_TRAF_CONFIG
;;
3) HADOOP_TYPE="apache"
echo "export HADOOP_TYPE=\"$HADOOP_TYPE\"" >> $LOCAL_TRAF_CONFIG
esac
export $HADOOP_TYPE
#==============================================
if [[ "$HADOOP_TYPE" == "apache" ]]; then
echo -n "Enter Hadoop installed full path (example: '/opt/hadoop-2.6.0'), default is [$HADOOP_PREFIX]: "
read answer
if [ -z $answer ]; then
if [[ -z $HADOOP_PREFIX ]]; then
echo "***ERROR: Must enter Hadoop installed path"
exit -1
fi
else
if [[ -e $answer ]]; then
HADOOP_PREFIX=$answer
else
echo "***ERROR: Hadoop installed path doesn't exist"
exit -1
fi
fi
echo "export HADOOP_PREFIX=\"$HADOOP_PREFIX\"" >> $LOCAL_TRAF_CONFIG
#Hbase path
echo -n "Enter HBase installed full path (example: '/opt/hbase-1.2.0'), default is [$HBASE_HOME]: "
read answer
if [ -z $answer ]; then
if [[ -z $HBASE_HOME ]]; then
echo "***ERROR: Must enter HBase installed path"
exit -1
fi
else
if [[ -e $answer ]]; then
HBASE_HOME=$answer
else
echo "***ERROR: HBase installed path doesn't exist"
exit -1
fi
fi
echo "export HBASE_HOME=\"$HBASE_HOME\"" >> $LOCAL_TRAF_CONFIG
#Zookeeper path
echo -n "Enter Zookeeper installed full path (example: '/opt/zoo'), default is [$ZOO_HOME]: "
read answer
if [ -z $answer ]; then
if [[ -z $ZOO_HOME ]]; then
echo "***ERROR: Must enter HBase installed path"
exit -1
fi
else
if [[ -e $answer ]]; then
ZOO_HOME=$answer
else
echo "***ERROR: HBase installed path doesn't exist"
exit -1
fi
fi
echo "export ZOO_HOME=\"$ZOO_HOME\"" >> $LOCAL_TRAF_CONFIG
#Hive path
echo -n "Is Hive Installed (Y/N), default is N: "
read answer
if [[ "${answer}" =~ ^[Yy]$ ]]; then
echo -n "Enter Hive installed full path, default is [$HIVE_HOME]: "
read answer1
if [ -z $answer1 ]; then
if [[ -z $HIVE_HOME ]]; then
echo "***ERROR: Must enter apache Hive installed path"
exit -1
fi
else
if [[ -e $answer1 ]]; then
HIVE_HOME=$answer
else
echo "***ERROR: apache Hive installed path doesn't exist"
exit -1
fi
fi
fi
echo "export HIVE_HOME=\"$HIVE_HOME\"" >> $LOCAL_TRAF_CONFIG
echo -n "Enter list of all nodes in this cluster (blank separated), default [$HADOOP_NODES]: "
read answer2
if [[ -z "$answer2" ]]; then
if [ -z "$HADOOP_NODES" ]; then
echo "***ERROR: All nodes in this cluster must be specified."
exit -1
fi
else
HADOOP_NODES="$answer2"
echo "export HADOOP_NODES=\"$HADOOP_NODES\"" >> $LOCAL_TRAF_CONFIG
fi
echo -n "Enter list of all HBase nodes in this cluster (blank separated), default [$HBASE_NODES]: "
read answer3
if [[ -z "$answer3" ]]; then
if [ -z "$HBASE_NODES" ]; then
echo "***ERROR: All nodes in this cluster must be specified."
exit -1
fi
else
HBASE_NODES="$answer3"
echo "export HBASE_NODES=\"$HBASE_NODES\"" >> $LOCAL_TRAF_CONFIG
fi
echo -n "Enter list of all HDFS nodes in this cluster (blank separated), default [$HDFS_NODES]: "
read answer4
if [[ -z "$answer4" ]]; then
if [ -z "$HDFS_NODES" ]; then
echo "***ERROR: All nodes in this cluster must be specified."
exit -1
fi
else
HDFS_NODES="$answer4"
echo "export HDFS_NODES=\"$HDFS_NODES\"" >> $LOCAL_TRAF_CONFIG
fi
fi
#==============================================
#Hadoop user name
if [[ "$HADOOP_TYPE" != "apache" ]]; then
echo -n "Enter Hadoop admin username, default is [$ADMIN]: "
read answer
if [ -z $answer ]; then
echo "export ADMIN=\"$ADMIN\"" >> $LOCAL_TRAF_CONFIG
username=$ADMIN
else
echo "export ADMIN=\"$answer\"" >> $LOCAL_TRAF_CONFIG
username=$answer
fi
#==============================================
#Hadoop Password
echo -n "Enter Hadoop admin password, default is [$PASSWORD]: "
read answer
if [ -z $answer ]; then
echo "export PASSWORD=\"$PASSWORD\"" >> $LOCAL_TRAF_CONFIG
password=$PASSWORD
else
echo "export PASSWORD=\"$answer\"" >> $LOCAL_TRAF_CONFIG
password=$answer
fi
#==============================================
#Hadoop URL
echo -n "Enter full Hadoop external network URL:port (include 'http://' or 'https://), default is [$URL]: "
read answer
if [ -z $answer ]; then
if [[ -z $URL ]]; then
echo "***ERROR: Must enter $HADOOP_TYPE external network URL"
exit -1
fi
else
URL=$answer
fi
validURL=$(curl -k -s --head $URL | head -n 1 | grep "OK" | wc -l)
if [[ $validURL -eq "1" ]]; then
echo "export URL=\"$URL\"" >> $LOCAL_TRAF_CONFIG
else
echo "***ERROR: Could not access $URL"
echo "***ERROR: Check that URL and port are correct or if $HADOOP_TYPE is up"
exit -1
fi
fi
#==============================================
#echo -n "Is this a multi-cluster setup (Y/N), default is N: "
#read answer
#if [[ "${answer}" =~ ^[Yy]$ ]]; then
# echo "export MULTI_CLUSTER=\"Y\"" >> $LOCAL_TRAF_CONFIG
# echo -n "Enter full Hadoop Cluster name, default is [$CLUSTER_NAME]: "
# read answer
# answer=${answer// /%20}
# if [ -z $answer ]; then
# if [[ -z $CLUSTER_NAME ]]; then
# echo "***ERROR: Must enter full Hadoop Cluster name"
# exit -1
# fi
# else
# CLUSTER_NAME=$answer
# echo "export CLUSTER_NAME=\"$CLUSTER_NAME\"" >> $LOCAL_TRAF_CONFIG
# fi
# echo -n "Enter list of all nodes in this cluster (blank separated), default [$HADOOP_NODES]: "
# read answer
# if [[ -z "$answer" ]]; then
# if [ -z "$HADOOP_NODES" ]; then
# echo "***ERROR: All nodes in this cluster must be specified."
# exit -1
# fi
# else
# HADOOP_NODES="$answer"
# echo "export HADOOP_NODES=\"$HADOOP_NODES\"" >> $LOCAL_TRAF_CONFIG
# fi
# echo -n "Enter list of all HBase nodes in this cluster (blank separated), default [$HBASE_NODES]: "
# read answer
# if [[ -z "$answer" ]]; then
# if [ -z "$HBASE_NODES" ]; then
# echo "***ERROR: All nodes in this cluster must be specified."
# exit -1
# fi
# else
# HBASE_NODES="$answer"
# echo "export HBASE_NODES=\"$HBASE_NODES\"" >> $LOCAL_TRAF_CONFIG
# fi
# echo -n "Enter list of all HDFS nodes in this cluster (blank separated), default [$HDFS_NODES]: "
# read answer
# if [[ -z "$answer" ]]; then
# if [ -z "$HDFS_NODES" ]; then
# echo "***ERROR: All nodes in this cluster must be specified."
# exit -1
# fi
# else
# HDFS_NODES="$answer"
# echo "export HDFS_NODES=\"$HDFS_NODES\"" >> $LOCAL_TRAF_CONFIG
# fi
#else
echo "export MULTI_CLUSTER=\"N\"" >> $LOCAL_TRAF_CONFIG
#fi
#==============================================
#HDFS Username
echo -n "Enter HDFS username or username running HDFS, default is [$HDFS_USER]: "
read answer
if [ -z $answer ]; then
echo "export HDFS_USER=\"$HDFS_USER\"" >> $LOCAL_TRAF_CONFIG
else
echo "export HDFS_USER=\"$answer\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
#HBase user
echo -n "Enter HBase username or username running HBase, default is [$HBASE_USER]: "
read answer
if [ -z $answer ]; then
echo "export HBASE_USER=\"$HBASE_USER\"" >> $LOCAL_TRAF_CONFIG
else
echo "export HBASE_USER=\"$answer\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
#HBase group
echo -n "Enter HBase group, default is [$HBASE_GROUP]: "
read answer
if [ -z $answer ]; then
echo "export HBASE_GROUP=\"$HBASE_GROUP\"" >> $LOCAL_TRAF_CONFIG
else
echo "export HBASE_GROUP=\"$answer\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
#HBase group
echo -n "Enter Zookeeper username or username running Zookeeper, default is [$ZOO_USER]: "
read answer
if [ -z $answer ]; then
echo "export ZOO_USER=\"$ZOO_USER\"" >> $LOCAL_TRAF_CONFIG
else
echo "export ZOO_USER=\"$answer\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
#Install location
traf_filename=$(basename "$TRAF_PACKAGE")
TRAF_HOME="$HOME_DIR/$TRAF_USER/${traf_filename%.tar.gz}"
echo -n "Enter directory to install trafodion to, default is [$TRAF_HOME]: "
read answer
if [ -z $answer ]; then
echo "export TRAF_HOME=\"$TRAF_HOME\"" >> $LOCAL_TRAF_CONFIG
else
echo "export TRAF_HOME=\"$answer\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
#Run sqstart
if [[ $SCANNER_MODE == "N" ]]; then
echo -n "Start Trafodion after install (Y/N), default is Y: "
read answer
if [ -z $answer ]; then
echo "export START=\"Y\"" >> $LOCAL_TRAF_CONFIG
echo "export INIT_TRAFODION=\"Y\"" >> $LOCAL_TRAF_CONFIG
else
if [[ "${answer}" =~ ^[Yy]$ ]]; then
echo "export START=\"Y\"" >> $LOCAL_TRAF_CONFIG
echo "export INIT_TRAFODION=\"Y\"" >> $LOCAL_TRAF_CONFIG
else
echo "export START=\"N\"" >> $LOCAL_TRAF_CONFIG
echo "export INIT_TRAFODION=\"N\"" >> $LOCAL_TRAF_CONFIG
echo "***INFO: Trafodion will not be started after install is complete."
echo "***INFO: User will need follow steps on the trafodion wiki on how to start."
fi
fi
fi
#==============================================
#DCS Servers
DCS_SERVERS_PARM=$(($node_count * 8))
echo -n "Total number of client connections per cluster, default [$DCS_SERVERS_PARM]: "
read answer
if [ ! -z $answer ]; then
DCS_SERVERS_PARM="$answer"
fi
echo "export DCS_SERVERS_PARM=\"$DCS_SERVERS_PARM\"" >> $LOCAL_TRAF_CONFIG
#==============================================
#Get the node name where the customer would like to start DcsMaster process
echo -n "Enter the node of primary DcsMaster, default [$DCS_PRIMARY_MASTER_NODE]: "
read answer
if [ ! -z $answer ]; then
DCS_PRIMARY_MASTER_NODE="$answer"
fi
echo "export DCS_PRIMARY_MASTER_NODE=\"$DCS_PRIMARY_MASTER_NODE\"" >> $LOCAL_TRAF_CONFIG
echo "export DCS_MASTER_HOST=\"$DCS_PRIMARY_MASTER_NODE\"" >> $LOCAL_TRAF_CONFIG
echo "export DCS_MASTER_PORT=\"$DCS_MASTER_PORT\"" >> $LOCAL_TRAF_CONFIG
#==============================================
#Enable HA
echo -n "Enable High Availability (Y/N), default is N: "
read answer
if [[ ! -z $answer ]]; then
if [[ "${answer}" =~ ^[Yy]$ ]]; then
ENABLE_HA="true"
else
ENABLE_HA="false"
fi
else
ENABLE_HA="false"
fi
echo "export ENABLE_HA=\"$ENABLE_HA\"" >> $LOCAL_TRAF_CONFIG
#==============================================
#Add Floating IP if HA Enabled
if [[ "$ENABLE_HA" == "true" ]]; then
#Get the floating IP address, interface name and the list of backup nodes to be used
######Get the floating IP address
echo -n "Enter floating IP address for setting up HA: "
read answer1
if [[ -z $answer1 ]]; then
echo "Floating IP address must be specified."
exit 1
else
FLOATING_IP="$answer1"
fi
echo "export FLOATING_IP=\"$FLOATING_IP\"" >> $LOCAL_TRAF_CONFIG
sed -i '/DCS_MASTER_HOST\=/d' $LOCAL_TRAF_CONFIG
echo "export DCS_MASTER_HOST=\"$FLOATING_IP\"" >> $LOCAL_TRAF_CONFIG
######Get the interface used by the floating IP address
echo -n "Enter interface used for floating IP address: "
read answer2
if [ -z $answer2 ]; then
echo "Floating IP address interface name must be specified."
exit 1
else
INTERFACE="$answer2"
fi
echo "export INTERFACE=\"$INTERFACE\"" >> $LOCAL_TRAF_CONFIG
######Get the list of backup nodes to be used
echo -n "Enter backup nodes for HA (blank seperated): "
read answer3
if [[ -z "$answer3" ]]; then
echo "Backup nodes must be specified."
exit 1
else
BACKUP_DCS_NODES="$answer3"
fi
echo "export BACKUP_DCS_NODES=\"$BACKUP_DCS_NODES\"" >> $LOCAL_TRAF_CONFIG
fi
#==============================================
#All items added to config file
#Will add setup complete flag
echo "export CONFIG_COMPLETE=\"true\"" >> $LOCAL_TRAF_CONFIG
#=============================================
#Create directories and cp files
sudo mkdir -p $TRAF_CONFIG_DIR
sudo chmod 777 $TRAF_CONFIG_DIR
sudo cp $LOCAL_TRAF_CONFIG $TRAF_CONFIG
sudo chmod 777 $TRAF_CONFIG
#==============================================
echo "***INFO: Trafodion configuration setup complete"