Skip to content

Commit

Permalink
Merge pull request #3 from SCADA-LTS/Patrykb0802/fix/#2747_Updated_in…
Browse files Browse the repository at this point in the history
…staller_for_Ubuntu_Server

#2747 Updated installer for Ubuntu Server
  • Loading branch information
Limraj authored Nov 8, 2023
2 parents bec3f9d + 68d87e8 commit ee35069
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 70 deletions.
14 changes: 7 additions & 7 deletions java/java_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,24 @@ SHELL_MYSQL_DEST=""
if [ ${MACHINE_TYPE} == 'aarch64' ]; then
echo "raspberry arm machine detected"
JAVA_ARCH="OpenJDK11U-jdk_aarch64_linux_hotspot_"
elif [ ${MACHINE_TYPE} == 'x86_64' ] || [ ${MACHINE_TYPE} == 'x64' ]; then
elif [ "${MACHINE_TYPE}" == 'x86_64' ] || [ "${MACHINE_TYPE}" == 'x64' ]; then
echo "64-bit machine detected"
JAVA_ARCH="OpenJDK11U-jdk_x64_linux_hotspot_"
else
echo "x86 architecture, 32-bit is not supported"
fi

if [ ! -d ${JAVA_BIN_DIR} ] && [ ! -z ${JAVA_ARCH} ]; then
if [ ! -d "${JAVA_BIN_DIR}" ] && [ ! -z ${JAVA_ARCH} ]; then
JDK_TAR_GZ_FILE=${JAVA_ARCH}${JAVA_FULL_VERSION}".tar.gz"
mkdir -p $JAVA_HOME
mkdir -p "$JAVA_HOME"
cd "$JAVA_HOME"
wget https://github.com/adoptium/temurin11-binaries/releases/download/jdk-${JAVA_VERSION_ENCODED}/${JDK_TAR_GZ_FILE}
tar -xvf ${JDK_TAR_GZ_FILE} -C "$JAVA_HOME"
wget https://github.com/adoptium/temurin11-binaries/releases/download/jdk-"${JAVA_VERSION_ENCODED}"/"${JDK_TAR_GZ_FILE}"
tar -xvf "${JDK_TAR_GZ_FILE}" -C "$JAVA_HOME"
cd "$JAVA_HOME/${JDK_DEST}"
mv * "$JAVA_HOME"
cd ..
rm -rf ${JDK_DEST}
rm -f ${JDK_TAR_GZ_FILE}
rm -rf "${JDK_DEST}"
rm -f "${JDK_TAR_GZ_FILE}"
echo "JDK version ${JAVA_FULL_VERSION} installed"
fi

74 changes: 42 additions & 32 deletions mysql/mysql_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,84 +26,94 @@ MACHINE_TYPE=`uname -m`
SERVER_MYSQL_DEST=""
SHELL_MYSQL_DEST=""

if [ ${MACHINE_TYPE} == 'aarch64' ]; then
FORBIDDEN_CHARS="[!@#\$%\^&\*\(\)]"
NUMBER_REGEX='^[0-9]+$'

if [ "${MACHINE_TYPE}" == 'aarch64' ]; then
echo "raspberry arm machine detected"
SERVER_MYSQL_DEST="mysql-${MYSQL_VERSION}-linux-glibc2.17-aarch64-minimal"
elif [ ${MACHINE_TYPE} == 'x86_64' ] || [ ${MACHINE_TYPE} == 'x64' ]; then
elif [ "${MACHINE_TYPE}" == 'x86_64' ] || [ "${MACHINE_TYPE}" == 'x64' ]; then
echo "64-bit machine detected"
SERVER_MYSQL_DEST="mysql-${MYSQL_VERSION}-linux-glibc2.17-x86_64-minimal"
SHELL_MYSQL_DEST="mysql-shell-${MYSQL_VERSION}-linux-glibc2.12-x86-64bit"
else
echo "x86 32-bit architecture is not supported"
fi

if [ ! -d ${SERVER_BIN_DIR} ] && [ ! -z ${SERVER_MYSQL_DEST} ]; then
if [ ! -d "${SERVER_BIN_DIR}" ] && [ ! -z "${SERVER_MYSQL_DEST}" ]; then

SERVER_MSQL_TAR_FILE="${SERVER_MYSQL_DEST}.tar"
SERVER_MSQL_TAR_XZ_FILE="${SERVER_MYSQL_DEST}.tar.xz"

mkdir -p $MYSQL_HOME
cd $MYSQL_HOME
mkdir -p "$MYSQL_HOME"
cd "$MYSQL_HOME"
wget "https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAJOR_VERSION}.${MYSQL_MINOR_VERSION}/${SERVER_MSQL_TAR_FILE}"
tar -xvf ${SERVER_MSQL_TAR_FILE} -C $MYSQL_HOME
tar -xvf ${SERVER_MSQL_TAR_XZ_FILE} -C $MYSQL_HOME
tar -xvf "${SERVER_MSQL_TAR_FILE}" -C "$MYSQL_HOME"
tar -xvf "${SERVER_MSQL_TAR_XZ_FILE}" -C "$MYSQL_HOME"
cd "$MYSQL_HOME/${SERVER_MYSQL_DEST}"
mv * $MYSQL_HOME
mv * "$MYSQL_HOME"
cd ..
rm -rf ${SERVER_MYSQL_DEST}
rm -f ${SERVER_MSQL_TAR_FILE}
rm -rf "${SERVER_MYSQL_DEST}"
rm -f "${SERVER_MSQL_TAR_FILE}"
rm -f *.tar.xz
cp -ar ${MY_CNF} ${COPIED_MY_CNF}
cp -ar ${INIT_SCHEMA} ${COPIED_INIT_SCHEMA}
cp -ar "${MY_CNF}" "${COPIED_MY_CNF}"
cp -ar "${INIT_SCHEMA}" "${COPIED_INIT_SCHEMA}"

NUMBER_REGEX='^[0-9]+$'
while [ ${MYSQL_PORT} -eq -1 ] || ! [[ ${MYSQL_PORT} =~ ${NUMBER_REGEX} ]]
do
echo -n "[MySQL Community Server] Enter port: "
read -r MYSQL_PORT
done
echo "port = ${MYSQL_PORT}" >> ${COPIED_MY_CNF}
echo "port = ${MYSQL_PORT}" >> "${COPIED_MY_CNF}"

if [ -z ${MYSQL_USERNAME} ]; then
if [ -z "${MYSQL_USERNAME}" ]; then
echo -n "[MySQL Community Server] Enter username: "
read -r MYSQL_USERNAME
echo "user = ${MYSQL_USERNAME}" >> ${COPIED_MY_CNF}
echo "user = ${MYSQL_USERNAME}" >> "${COPIED_MY_CNF}"
fi

if [ -z ${MYSQL_PASSWORD} ]; then
echo -n "[MySQL Community Server] Enter password: "
read -r MYSQL_PASSWORD
echo $'\n'"CREATE USER IF NOT EXISTS '${MYSQL_USERNAME}'@'localhost' IDENTIFIED BY '${MYSQL_PASSWORD}';"$'\n'"GRANT ALL ON scadalts.* TO '${MYSQL_USERNAME}'@'localhost';"$'\n'"FLUSH PRIVILEGES;" >> ${COPIED_INIT_SCHEMA}
if [ -z "${MYSQL_PASSWORD}" ]; then
while [ -z "${MYSQL_PASSWORD}" ] #|| [[ "${MYSQL_PASSWORD}" =~ ${FORBIDDEN_CHARS} ]]
do
echo -n "[MySQL Community Server] Enter password: "
read -r MYSQL_PASSWORD
done
echo $'\n'"CREATE USER IF NOT EXISTS '${MYSQL_USERNAME}'@'localhost' IDENTIFIED BY '${MYSQL_PASSWORD}';"$'\n'"GRANT ALL ON scadalts.* TO '${MYSQL_USERNAME}'@'localhost';"$'\n'"FLUSH PRIVILEGES;" >> "${COPIED_INIT_SCHEMA}"
fi

if [ -z ${MYSQL_ROOT_PASSWORD} ]; then
echo -n "[MySQL Community Server] Enter root password: "
read -r MYSQL_ROOT_PASSWORD
echo $'\n'"ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}';" >> ${COPIED_INIT_SCHEMA}
if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then
while [ -z "${MYSQL_ROOT_PASSWORD}" ] #|| [[ ${MYSQL_ROOT_PASSWORD} =~ ${FORBIDDEN_CHARS} ]]
do
echo -n "[MySQL Community Server] Enter root password: "
read -r MYSQL_ROOT_PASSWORD
done

echo $'\n'"ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}';"$'\n'"FLUSH PRIVILEGES;" >> "${COPIED_INIT_SCHEMA}"
fi

echo "MySQL Community Server version ${MYSQL_VERSION} installed"
fi

if [ ! -d ${CLIENT_BIN_DIR} ] && [ ! -z ${SHELL_MYSQL_DEST} ]; then
if [ ! -d "${CLIENT_BIN_DIR}" ] && [ ! -z "${SHELL_MYSQL_DEST}" ]; then

SHELL_MYSQL_TAR_GZ_FILE="${SHELL_MYSQL_DEST}.tar.gz"

mkdir -p "$SHELL_HOME"
cd $SHELL_HOME
cd "$SHELL_HOME"
wget "https://dev.mysql.com/get/Downloads/MySQL-Shell/${SHELL_MYSQL_TAR_GZ_FILE}"
tar -xvf "${SHELL_MYSQL_TAR_GZ_FILE}" -C "$SHELL_HOME"
cd "$SHELL_HOME/${SHELL_MYSQL_DEST}"
mv * $SHELL_HOME
mv * "$SHELL_HOME"
cd ..
rm -rf ${SHELL_MYSQL_DEST}
rm -f ${SHELL_MYSQL_TAR_GZ_FILE}
rm -rf "${SHELL_MYSQL_DEST}"
rm -f "${SHELL_MYSQL_TAR_GZ_FILE}"
echo "MySQL Shell version ${MYSQL_VERSION} installed"
fi

if [ -d ${SERVER_BIN_DIR} ] && [ ! -d "$DATADIR" ]; then
mkdir -p $DATADIR
cd ${SERVER_BIN_DIR}
./mysqld --defaults-file="$MYSQL_HOME/my.cnf" --initialize-insecure --datadir $DATADIR --user="${MYSQL_USERNAME}" --init-file="${COPIED_INIT_SCHEMA}" --console
if [ -d "${SERVER_BIN_DIR}" ] && [ ! -d "$DATADIR" ]; then
mkdir -p "$DATADIR"
cd "${SERVER_BIN_DIR}"
./mysqld --defaults-file="$MYSQL_HOME/my.cnf" --initialize-insecure --datadir "$DATADIR" --user="${MYSQL_USERNAME}" --init-file="${COPIED_INIT_SCHEMA}" --console
echo "MySQL Community Server version ${MYSQL_VERSION} configured"
fi
9 changes: 4 additions & 5 deletions mysql_start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@ BINDIR="$MYSQL_HOME/bin"

MYSQLD_PID="$DATADIR/mysqld.pid"

if [ ! -d ${BINDIR} ]; then
${MYSQL_BASE}/mysql_install.sh ${MYSQL_MAJOR_VERSION} ${MYSQL_MINOR_VERSION} ${MYSQL_PATCH_VERSION}
if [ ! -d "${BINDIR}" ]; then
"${MYSQL_BASE}"/mysql_install.sh ${MYSQL_MAJOR_VERSION} ${MYSQL_MINOR_VERSION} ${MYSQL_PATCH_VERSION}
fi

cd ${BINDIR}
./mysqld --defaults-file=${MY_CNF} --datadir $DATADIR --pid-file=${MYSQLD_PID} --console

cd "${BINDIR}"
./mysqld --defaults-file="${MY_CNF}" --datadir "$DATADIR" --pid-file="${MYSQLD_PID}" --console
55 changes: 38 additions & 17 deletions tomcat64/tomcat_config.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
export CATALINA_HOME="$1"
cd $CATALINA_HOME
cd "$CATALINA_HOME"
cd ..
CATALINA_BASE=`pwd`

Expand All @@ -9,7 +9,7 @@ CATALINA_LIB="$CATALINA_HOME/lib"
CATALINA_TOMCAT_USERS_XML="$CATALINA_HOME/conf/tomcat-users.xml"
CATALINA_WEBAPPS="$CATALINA_HOME/webapps"
SCADA_LTS_HOME="${CATALINA_WEBAPPS}/Scada-LTS"
CATALINA_CONTEXT_XML=${SCADA_LTS_HOME}/META-INF/context.xml
CATALINA_CONTEXT_XML="${SCADA_LTS_HOME}/META-INF/context.xml"
CATALINA_BIN_DIR="$CATALINA_HOME/bin"

CATALINA_PORT=-1
Expand All @@ -19,43 +19,64 @@ CATALINA_PASSWORD=""
DATABASE_PORT=-1
DATABASE_USERNAME=""
DATABASE_PASSWORD=""
DATABASE_HOSTNAME=""

NUMBER_REGEX='^[0-9]+$'
HOSTNAME_REGEX='^[a-zA-Z0-9]+$'

cd "${CATALINA_BASE}"
unzip "Scada-LTS.war" -d ${SCADA_LTS_HOME}
cp -rf context.xml ${CATALINA_CONTEXT_XML}
cp -rf ${CATALINA_BASE}/lib/*.jar ${CATALINA_LIB}
cp -ar setenv.sh ${CATALINA_BIN_DIR}
unzip "Scada-LTS.war" -d "${SCADA_LTS_HOME}"
cp -rf context.xml "${CATALINA_CONTEXT_XML}"
cp -rf "${CATALINA_BASE}"/lib/*.jar "${CATALINA_LIB}"
cp -ar setenv.sh "${CATALINA_BIN_DIR}"

while [ ${CATALINA_PORT} -eq -1 ] || ! [[ ${CATALINA_PORT} =~ ${NUMBER_REGEX} ]]
do
echo -n "[Apache Tomcat Server] Enter port: "
read -r CATALINA_PORT
done
sed -i "s/<Connector port=\"8080\"/<Connector port=\"${CATALINA_PORT}\"/" ${CATALINA_SERVER_XML}
sed -i "s/<Connector port=\"8080\"/<Connector port=\"${CATALINA_PORT}\"/" "${CATALINA_SERVER_XML}"

if [ -z ${CATALINA_USERNAME} ] || [ -z ${CATALINA_PASSWORD} ]; then
if [ -z "${CATALINA_USERNAME}" ] || [ -z "${CATALINA_PASSWORD}" ]; then
echo -n "[Apache Tomcat Server] Enter username: "
read -r CATALINA_USERNAME
echo -n "[Apache Tomcat Server] Enter password: "
read -r CATALINA_PASSWORD
sed -i "s/<\/tomcat-users>/<role rolename=\"monitoring\"\/><role rolename=\"manager\"\/><role rolename=\"manager-gui\"\/><role rolename=\"admin\"\/><role rolename=\"admin-script\"\/><role rolename=\"admin-gui\"\/><user username=\"${CATALINA_USERNAME}\" password=\"${CATALINA_PASSWORD}\" roles=\"admin,manager,manager-gui,monitoring,admin-script,admin-gui\"\/><\/tomcat-users>/" ${CATALINA_TOMCAT_USERS_XML}
while [ -z "${CATALINA_PASSWORD}" ]
do

echo -n "[Apache Tomcat Server] Enter password: "
read -r CATALINA_PASSWORD

done

sed -ri "s|</tomcat-users>|<role rolename=\"monitoring\"\/><role rolename=\"manager\"\/><role rolename=\"manager-gui\"\/><role rolename=\"admin\"\/><role rolename=\"admin-script\"\/><role rolename=\"admin-gui\"\/><user username=\"${CATALINA_USERNAME}\" password=\"${CATALINA_PASSWORD//&/\\&amp;}\" roles=\"admin,manager,manager-gui,monitoring,admin-script,admin-gui\"\/></tomcat-users>|" "${CATALINA_TOMCAT_USERS_XML}"

fi

while [ ${DATABASE_PORT} -eq -1 ] || ! [[ ${DATABASE_PORT} =~ ${NUMBER_REGEX} ]]
do
echo -n "[Apache Tomcat Server] Enter database port: "
read -r DATABASE_PORT
done
sed -i "s/jdbc:mysql:\/\/localhost:3308/jdbc:mysql:\/\/localhost:${DATABASE_PORT}/" ${CATALINA_CONTEXT_XML}
sed -i "s/jdbc:mysql:\/\/localhost:3308/jdbc:mysql:\/\/localhost:${DATABASE_PORT}/" "${CATALINA_CONTEXT_XML}"

if [ -z ${DATABASE_USERNAME} ] || [ -z ${DATABASE_PASSWORD} ]; then
while [ -z "${DATABASE_HOSTNAME}" ] || ! [[ "${DATABASE_HOSTNAME}" =~ ${HOSTNAME_REGEX} ]]
do
echo -n "[Apache Tomcat Server] Enter database host: "
read -r DATABASE_HOSTNAME
done
sed -i "s/jdbc:mysql:\/\/localhost:${DATABASE_PORT}/jdbc:mysql:\/\/"${DATABASE_HOSTNAME}":${DATABASE_PORT}/" "${CATALINA_CONTEXT_XML}"

if [ -z "${DATABASE_USERNAME}" ] || [ -z "${DATABASE_PASSWORD}" ]; then
echo -n "[Apache Tomcat Server] Enter database username: "
read -r DATABASE_USERNAME
sed -i "s/username=\"root\"/username=\"${DATABASE_USERNAME}\"/" ${CATALINA_CONTEXT_XML}
echo -n "[Apache Tomcat Server] Enter database password: "
read -r DATABASE_PASSWORD
sed -i "s/password=\"\"/password=\"${DATABASE_PASSWORD}\"/" ${CATALINA_CONTEXT_XML}
sed -i "s/username=\"root\"/username=\"${DATABASE_USERNAME}\"/" "${CATALINA_CONTEXT_XML}"
while [ -z "${DATABASE_PASSWORD}" ]
do
echo -n "[Apache Tomcat Server] Enter database password: "
read -r DATABASE_PASSWORD
done

sed -ri "s|password=\"\"|password=\"${DATABASE_PASSWORD//&/\\&amp;}\"|" "${CATALINA_CONTEXT_XML}"

fi
echo "Tomcat version ${TOMCAT_VERSION} configured"
10 changes: 5 additions & 5 deletions tomcat64/tomcat_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ TOMCAT_VERSION="${TOMCAT_MAJOR_VERSION}.${TOMCAT_MINOR_VERSION}.${TOMCAT_PATCH_V
TOMCAT_DEST="apache-tomcat-${TOMCAT_VERSION}"
TOMCAT_TAR_GZ_FILE="${TOMCAT_DEST}.tar.gz"

mkdir -p $CATALINA_HOME
cd $CATALINA_HOME
mkdir -p "$CATALINA_HOME"
cd "$CATALINA_HOME"
wget "https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_VERSION}/bin/${TOMCAT_TAR_GZ_FILE}"
tar -xvf ${TOMCAT_TAR_GZ_FILE} -C "$CATALINA_HOME"
tar -xvf "${TOMCAT_TAR_GZ_FILE}" -C "$CATALINA_HOME"
cd "$CATALINA_HOME/${TOMCAT_DEST}"
mv * "$CATALINA_HOME"
cd ..
rm -rf ${TOMCAT_DEST}
rm -f ${TOMCAT_TAR_GZ_FILE}
rm -rf "${TOMCAT_DEST}"
rm -f "${TOMCAT_TAR_GZ_FILE}"
echo "Tomcat version ${TOMCAT_VERSION} installed"
8 changes: 4 additions & 4 deletions tomcat_start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ CATALINA_WEBAPPS="$CATALINA_HOME/webapps"
SCADA_LTS_HOME="${CATALINA_WEBAPPS}/Scada-LTS"

if [ ! -d "${JAVA_BIN_DIR}" ]; then
${JAVA_BASE}/java_install.sh $JAVA_HOME ${JAVA_VERSION} ${JAVA_UPDATE}
"${JAVA_BASE}"/java_install.sh "$JAVA_HOME" "${JAVA_VERSION}" "${JAVA_UPDATE}"
fi

if [ ! -d "${CATALINA_BIN_DIR}" ]; then
$CATALINA_BASE/tomcat_install.sh $CATALINA_HOME ${TOMCAT_MAJOR_VERSION} ${TOMCAT_MINOR_VERSION} ${TOMCAT_PATCH_VERSION}
"$CATALINA_BASE"/tomcat_install.sh "$CATALINA_HOME" ${TOMCAT_MAJOR_VERSION} ${TOMCAT_MINOR_VERSION} ${TOMCAT_PATCH_VERSION}
fi

if [ ! -d "${SCADA_LTS_HOME}" ]; then
$CATALINA_BASE/tomcat_config.sh $CATALINA_HOME
"$CATALINA_BASE"/tomcat_config.sh "$CATALINA_HOME"
fi

$CATALINA_HOME/bin/catalina.sh run
"$CATALINA_HOME"/bin/catalina.sh run

0 comments on commit ee35069

Please sign in to comment.