centreon-plugins/as400/connector.as400.install/install.sh

244 lines
5.9 KiB
Bash
Executable File

#!/bin/bash
#################################################
##Functions and vars for actions results printing
#################################################
RES_COL=80
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_INFO="echo -en \\033[1;38m"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_NORMAL="echo -en \\033[0;39m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
function echo_success() {
echo -n "$1"
$MOVE_TO_COL
$SETCOLOR_SUCCESS
echo -n "$2"
$SETCOLOR_NORMAL
echo -e "\r"
echo ""
}
function echo_failure() {
echo -n "$1"
$MOVE_TO_COL
$SETCOLOR_FAILURE
echo -n "$2"
$SETCOLOR_NORMAL
echo -e "\r"
echo ""
}
function echo_passed() {
echo -n "$1"
$MOVE_TO_COL
$SETCOLOR_WARNING
echo -n "$2"
$SETCOLOR_NORMAL
echo -e "\r"
echo ""
}
##################
##Static variables
##################
INIT_FOLDER="init-script/"
INIT_FILE="centreon-as400.service"
SYSCONFIG_FILE="centreon-as400-sysconfig"
CONNECTOR_VERSION=2.0.0
CONNECTOR_HOME="/usr/share/centreon-as400/"
CONNECTOR_LOG="/var/log/centreon-as400/"
CONNECTOR_ETC="/etc/centreon-as400/"
LOG_ETC_FILE="log4j.xml"
CONNECTOR_USER="centreon-as400"
CONNECTOR_GROUP="centreon-as400"
JAVA_BIN=""
ETC_PASSWD="/etc/passwd"
ETC_GROUP="/etc/group"
ETC_INITD="/etc/systemd/system/"
ETC_SYSCONFIG="/etc/sysconfig/"
######
##INIT
######
$SETCOLOR_WARNING
echo "Starting setup..."
$SETCOLOR_NORMAL
echo ""
##############################
##Getting modules install path
##############################
DONE="no"
CREATE_HOME="no"
temp_folder="$CONNECTOR_HOME"
while [ "$DONE" = "no" ]; do
echo "Centreon AS400 home Directory [$CONNECTOR_HOME]? "
echo -n ">"
read temp_folder
if [ -z "$temp_folder" ]; then
temp_folder="$CONNECTOR_HOME"
fi
temp_folder=`echo "$temp_folder" | sed "s/$/\//"`
if [ -d "$temp_folder" ]; then
DONE="yes"
else
echo_failure "$temp does not exists" "CRITICAL"
echo "Specified path does not exists, do you want to create it ?[Y/n]"
echo -n ">"
read temp
if [ -z "$temp" ]; then
temp="Y"
fi
while [ "$temp" != "Y" ] && [ "$temp" != "y" ] && [ "$temp" != "n" ] && [ "$temp" != "N" ]; do
echo "Specified path does not exists, do you want to create it ?[Y/n]"
echo -n ">"
read temp
if [ -z "$temp" ]; then
temp="Y"
fi
done
if [ "$temp" = "Y" ] || [ "$temp" = "y" ]; then
DONE="yes"
CREATE_HOME="yes"
fi
fi
done
temp_folder=$(echo $temp_folder | sed "s/\/\/$/\//")
CONNECTOR_HOME=${temp_folder}
echo_success "Centreon AS400 home directory" "$CONNECTOR_HOME"
#############################
##Getting java home directory
#############################
JAVA_HOME="/usr/"
temp=$JAVA_HOME
while [ ! -x "$temp/bin/java" ]; do
echo_failure "Cannot find java binary" "FAILURE"
echo "Java home directory?"
echo -n ">"
read temp
if [ -z "$temp" ]; then
temp="$JAVA_HOME"
fi
done
temp=`echo "$temp" | sed "s/$/\//"`
JAVA_BIN=`echo $temp | sed "s/\/\/$/\//"`"bin/java"
echo_success "Java bin path :" "$JAVA_BIN"
###################
# CONNECTOR INIT SCRIPT
###################
echo "Do you want to install AS400 systemd script [y/N]?"
echo -n ">"
read response
if [ -z "$response" ]; then
response="N"
fi
while [ "$response" != "Y" ] && [ "$response" != "y" ] && [ "$response" != "N" ] && [ "$response" != "n" ]; do
echo "Do you want to install AS400 systemd script [y/N]?"
echo -n ">"
read response
if [ -z "$response" ]; then
response="N"
fi
done
INSTALL_CONNECTOR_INIT=$response
echo_success "CONNECTOR systemd script :" "$ETC_INITD/$INIT_FILE"
########################
## Centreon BI user and Group
########################
exists=`cat $ETC_PASSWD | grep "^$CONNECTOR_USER:"`
if [ -z "$exists" ]; then
useradd -m $CONNECTOR_USER -d $CONNECTOR_HOME
fi
echo_success "CONNECTOR run user :" "$CONNECTOR_USER"
exists=`cat $ETC_GROUP | grep "^$CONNECTOR_GROUP:"`
if [ -z "$exists" ]; then
groupadd $CONNECTOR_GROUP
fi
echo_success "CONNECTOR run group :" "$CONNECTOR_GROUP"
#######################
# DEPLOYING CENTREON BI
#######################
echo ""
echo_success "Creating directories and moving binaries..." "OK"
if [ ! -d "${CONNECTOR_HOME}" ]; then
mkdir -p $CONNECTOR_HOME
fi
if [ ! -d "${CONNECTOR_HOME}/bin" ]; then
mkdir ${CONNECTOR_HOME}/bin
fi
if [ -d bin/ ] ; then
cp -f bin/*.jar ${CONNECTOR_HOME}/bin/
fi
if [ ! -d "${CONNECTOR_LOG}" ]; then
mkdir -p ${CONNECTOR_LOG}
fi
if [ ! -d "${CONNECTOR_ETC}" ]; then
mkdir -p ${CONNECTOR_ETC}
fi
cp etc/log4j.xml ${CONNECTOR_ETC}
cp etc/config.properties ${CONNECTOR_ETC}
###################
##Macro replacement
###################
ETC_FILE=${CONNECTOR_ETC}${CONNECTOR_ETC_FILE}
if [ "$INSTALL_CONNECTOR_INIT" = "y" ] || [ "$INSTALL_CONNECTOR_INIT" = "Y" ]; then
echo_success "Copying CONNECTOR init script..." "OK"
sed -e 's|@JAVA_BIN@|'"$JAVA_BIN"'|g' \
$INIT_FOLDER/$INIT_FILE > $ETC_INITD/$INIT_FILE
chmod 644 $ETC_INITD/$INIT_FILE
sed -e 's|@CONNECTOR_HOME@|'"$CONNECTOR_HOME"'|g' \
-e 's|@JAVA_BIN@|'"$JAVA_BIN"'|g' \
-e 's|@CONNECTOR_USER@|'"$CONNECTOR_USER"'|g' \
-e 's|@CONNECTOR_ETC@|'"${CONNECTOR_ETC}"'|g' \
-e 's|@CONNECTOR_LOG@|'"${CONNECTOR_LOG}"'|g' \
-e 's|@CONNECTOR_VERSION@|'"${CONNECTOR_VERSION}"'|g' \
$INIT_FOLDER/$SYSCONFIG_FILE > $ETC_SYSCONFIG/centreon-as400
fi
echo_success "Deploying Centreon-AS400..." "OK"
###################################################
##Rights settings on install directory and binaries
###################################################
chown -R $CONNECTOR_USER.$CONNECTOR_GROUP $CONNECTOR_HOME
chown -R $CONNECTOR_USER.$CONNECTOR_GROUP $CONNECTOR_LOG
chown -R $CONNECTOR_USER.$CONNECTOR_GROUP $CONNECTOR_ETC
chmod -R 775 $CONNECTOR_HOME
echo_success "Rights settings..." "OK"
systemctl enable $INIT_FILE
#########
# THE END
#########
echo ""
$SETCOLOR_WARNING
echo "Setup finished."
echo ""