openappsec/nodes/agent_cache/package/install-cp-nano-agent-cache.sh
2023-10-04 21:35:52 +03:00

131 lines
3.9 KiB
Bash
Executable File

#!/bin/sh
FORCE_STDOUT=true
INSTALLATION_LOG_FILE="/var/log/nano_agent/install-cp-nano-agent-cache.log"
INSTALLATION_TIME=$(date)
CONF_PATH=/etc/cp/conf
CACHE_SERVICE_PATH=/etc/cp/agentCache
WATCHDOG_PATH=/etc/cp/watchdog/cp-nano-watchdog
USR_LIB_PATH="/usr/lib"
export INSTALL_COMMAND
is_install="$(command -v install)"
if [ -z ${is_install} ]; then
INSTALL_COMMAND="cp -f"
cp_print "[WARNING]: install command not found - using cp instead" ${FORCE_STDOUT}
else
INSTALL_COMMAND=install
fi
mkdir -p /var/log/nano_agent
cp_print()
{
var_text=$1
var_std_out=$2
touch $INSTALLATION_LOG_FILE
if [ -n "$var_std_out" ]; then
if [ "$var_std_out" = "true" ]; then
printf "%b\n" "$var_text"
fi
fi
printf "%b\n" "$var_text" >> $INSTALLATION_LOG_FILE
}
cp_exec()
{
var_cmd=$1
var_std_out=$2
# Send exec output to RES
RES=$($var_cmd 2>&1)
if [ -n "$RES" ]; then
cp_print "$RES" "$var_std_out"
fi
}
run_installation()
{
cp_print "Starting installation of Check Point Cache service [$INSTALLATION_TIME]\n" $FORCE_STDOUT
cp_exec "${WATCHDOG_PATH} --un-register ${CACHE_SERVICE_PATH}/cp-nano-agent-cache"
cp_exec "mkdir -p ${CACHE_SERVICE_PATH}"
cp_exec "mkdir -p ${USR_LIB_PATH}/cpnano"
cp_exec "cp -rf lib/* ${USR_LIB_PATH}/cpnano"
cp_exec "cp -rf bin/redis-server ${CACHE_SERVICE_PATH}/"
cp_exec "cp -rf bin/redis-cli ${CACHE_SERVICE_PATH}/"
cp_exec "cp -f redis.conf ${CONF_PATH}/redis.conf"
cp_exec "cp -f cp-nano-agent-cache.cfg ${CACHE_SERVICE_PATH}/cp-nano-agent-cache.cfg"
cp_exec "mv ${CACHE_SERVICE_PATH}/redis-server ${CACHE_SERVICE_PATH}/cp-nano-agent-cache"
cp_exec "mv ${CACHE_SERVICE_PATH}/redis-cli ${CACHE_SERVICE_PATH}/cp-nano-cache-cli"
cp_exec "chmod +x ${CACHE_SERVICE_PATH}/cp-nano-agent-cache"
cp_exec "chmod +x ${CACHE_SERVICE_PATH}/cp-nano-cache-cli"
cp_exec "chmod 600 ${CACHE_SERVICE_PATH}/cp-nano-agent-cache.cfg"
cp_exec "${WATCHDOG_PATH} --register ${CACHE_SERVICE_PATH}/cp-nano-agent-cache"
cp_print "Installation completed successfully." $FORCE_STDOUT
}
usage()
{
echo "Check Point: available flags are"
echo "--install : install agent inteligence Service"
echo "--uninstall : remove agent inteligenceService"
echo "--pre_install_test : run Pre-installation test for agent inteligence Service install package"
echo "--post_install_test : run Post-installation test for agent inteligence Service install package"
exit 255
}
run_uninstall()
{
cp_print "Starting uninstall of Check Point Cache service [$INSTALLATION_TIME]\n" $FORCE_STDOUT
cp_exec "${WATCHDOG_PATH} --un-register ${CACHE_SERVICE_PATH}/cp-nano-agent-cache"
cp_exec "rm -rf ${CACHE_SERVICE_PATH}/"
cp_exec "rm -rf ${CONF_PATH}/redis.conf"
cp_print "Check Point Cache service was removed successfully\n" $FORCE_STDOUT
}
run_pre_install_test()
{
cp_print "Successfully finished pre-installation test for Check Point Cache service installation package [$INSTALLATION_TIME]\n" $FORCE_STDOUT
exit 0
}
run_post_install_test()
{
if [ ! -d ${CACHE_SERVICE_PATH} ]; then
cp_print "Failed post-installation test for Check Point Cache service installation package [$INSTALLATION_TIME]\n" $FORCE_STDOUT
exit 1
fi
cp_print "Successfully finished post-installation test for Check Point Cache service installation package [$INSTALLATION_TIME]\n" $FORCE_STDOUT
exit 0
}
run()
{
if [ '--install' = "$1" ]; then
run_installation "${@}"
elif [ '--uninstall' = "$1" ]; then
run_uninstall
elif [ '--pre_install_test' = "$1" ]; then
run_pre_install_test
elif [ '--post_install_test' = "$1" ]; then
run_post_install_test
else
usage
exit 1
fi
}
if [ "$(id -u)" != "0" ]; then
echo "Administrative privileges required for this Package (use su or sudo)"
exit 1
fi
shift
run "${@}"
exit 0