From 356ec65b9dd88ab5ff57f1e73e3708c18419e905 Mon Sep 17 00:00:00 2001 From: Rafael <rafael.ameijeiras@artica.es> Date: Tue, 23 Aug 2022 14:19:39 +0200 Subject: [PATCH] improve remote database install 9441 --- .../pandora_deploy_community_el8.sh | 54 ++++++++++--------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/extras/deploy-scripts/pandora_deploy_community_el8.sh b/extras/deploy-scripts/pandora_deploy_community_el8.sh index a4a80af6c5..0f3ceadb39 100644 --- a/extras/deploy-scripts/pandora_deploy_community_el8.sh +++ b/extras/deploy-scripts/pandora_deploy_community_el8.sh @@ -14,7 +14,7 @@ PANDORA_SERVER_CONF=/etc/pandora/pandora_server.conf PANDORA_AGENT_CONF=/etc/pandora/pandora_agent.conf -S_VERSION='2022052501' +S_VERSION='202209231' LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log" # define default variables @@ -26,6 +26,7 @@ LOGFILE="/tmp/pandora-deploy-community-$(date +%F).log" [ "$DBUSER" ] || DBUSER=pandora [ "$DBPASS" ] || DBPASS=pandora [ "$DBPORT" ] || DBPORT=3306 +[ "$DBROOTUSER" ] || DBROOTUSER=root [ "$DBROOTPASS" ] || DBROOTPASS=pandora [ "$SKIP_PRECHECK" ] || SKIP_PRECHECK=0 [ "$SKIP_DATABASE_INSTALL" ] || SKIP_DATABASE_INSTALL=0 @@ -73,13 +74,16 @@ check_cmd_status () { } check_pre_pandora () { - export MYSQL_PWD=$DBPASS echo -en "${cyan}Checking environment ... ${reset}" rpm -qa | grep 'pandorafms_' &>> /dev/null && local fail=true [ -d "$PANDORA_CONSOLE" ] && local fail=true [ -f /usr/bin/pandora_server ] && local fail=true - echo "use $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true + + if [ "$SKIP_DATABASE_INSTALL" -eq '0' ]; then + export MYSQL_PWD=$DBPASS + echo "use $DBNAME" | mysql -u$DBUSER -P$DBPORT -h$DBHOST &>> /dev/null && local fail=true + fi [ ! $fail ] check_cmd_status 'Error there is a current Pandora FMS installation on this node, please remove it to execute a clean install' @@ -214,7 +218,7 @@ if [ "$PHPVER" -eq '8' ] ; then execute_cmd "dnf module install -y php:remi-8.0" "Configuring PHP 8" fi -# Install percona Database + # Install percona Database execute_cmd "dnf module disable -y mysql" "Disabiling mysql module" if [ "$MYVER" -eq '80' ] ; then @@ -226,7 +230,6 @@ if [ "$MYVER" -ne '80' ] ; then execute_cmd "dnf install -y Percona-Server-server-57 percona-xtrabackup-24" "Installing Percona Server 57" fi - # Console dependencies console_dependencies=" \ php \ @@ -401,30 +404,28 @@ if [ "$SKIP_DATABASE_INSTALL" -eq '0' ] ; then export MYSQL_PWD=$(grep "temporary password" /var/log/mysqld.log | rev | cut -d' ' -f1 | rev) if [ "$MYVER" -eq '80' ] ; then echo """ - SET PASSWORD FOR 'root'@'localhost' = 'Pandor4!'; + SET PASSWORD FOR '$DBROOTUSER'@'localhost' = 'Pandor4!'; UNINSTALL COMPONENT 'file://component_validate_password'; - SET PASSWORD FOR 'root'@'localhost' = '$DBROOTPASS'; - """ | mysql --connect-expired-password -uroot &>> "$LOGFILE" + SET PASSWORD FOR '$DBROOTUSER'@'localhost' = '$DBROOTPASS'; + """ | mysql --connect-expired-password -u$DBROOTUSER &>> "$LOGFILE" fi if [ "$MYVER" -ne '80' ] ; then echo """ - SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Pandor4!'); + SET PASSWORD FOR '$DBROOTUSER'@'localhost' = PASSWORD('Pandor4!'); UNINSTALL PLUGIN validate_password; - SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$DBROOTPASS'); - """ | mysql --connect-expired-password -uroot &>> "$LOGFILE"fi + SET PASSWORD FOR '$DBROOTUSER'@'localhost' = PASSWORD('$DBROOTPASS'); + """ | mysql --connect-expired-password -u$DBROOTUSER &>> "$LOGFILE"fi fi -fi -export MYSQL_PWD=$DBROOTPASS -echo -en "${cyan}Creating Pandora FMS database...${reset}" -echo "create database $DBNAME" | mysql -uroot -P$DBPORT -h$DBHOST -check_cmd_status "Error creating database $DBNAME, is this an empty node? if you have a previus installation please contact with support." -echo "CREATE USER \"$DBUSER\"@'%' IDENTIFIED BY \"$DBPASS\";" | mysql -uroot -P$DBPORT -h$DBHOST -echo "ALTER USER \"$DBUSER\"@'%' IDENTIFIED WITH mysql_native_password BY \"$DBPASS\"" | mysql -uroot -P$DBPORT -h$DBHOST -echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%'" | mysql -uroot -P$DBPORT -h$DBHOST + export MYSQL_PWD=$DBROOTPASS + echo -en "${cyan}Creating Pandora FMS database...${reset}" + echo "create database $DBNAME" | mysql -u$DBROOTUSER -P$DBPORT -h$DBHOST + check_cmd_status "Error creating database $DBNAME, is this an empty node? if you have a previus installation please contact with support." -export MYSQL_PWD=$DBPASS + echo "CREATE USER \"$DBUSER\"@'%' IDENTIFIED BY \"$DBPASS\";" | mysql -u$DBROOTUSER -P$DBPORT -h$DBHOST + echo "ALTER USER \"$DBUSER\"@'%' IDENTIFIED WITH mysql_native_password BY \"$DBPASS\"" | mysql -u$DBROOTUSER -P$DBPORT -h$DBHOST + echo "GRANT ALL PRIVILEGES ON $DBNAME.* TO \"$DBUSER\"@'%'" | mysql -u$DBROOTUSER -P$DBPORT -h$DBHOST #Generating my.cnf cat > /etc/my.cnf << EO_CONFIG_F @@ -471,12 +472,14 @@ pid-file=/var/run/mysqld/mysqld.pid EO_CONFIG_F -if [ "$MYVER" -eq '80' ] ; then - sed -i -e "/query_cache.*/ s/^#*/#/g" /etc/my.cnf + if [ "$MYVER" -eq '80' ] ; then + sed -i -e "/query_cache.*/ s/^#*/#/g" /etc/my.cnf + fi + + execute_cmd "systemctl restart mysqld" "Configuring database engine" + execute_cmd "systemctl enable mysqld --now" "Enabling Database service" fi - -execute_cmd "systemctl restart mysqld" "Configuring database engine" - +export MYSQL_PWD=$DBPASS #Define packages if [ "$PANDORA_BETA" -eq '0' ] ; then @@ -503,7 +506,6 @@ tar xvzf gotty_linux_amd64.tar.gz &>> $LOGFILE execute_cmd "mv gotty /usr/bin/" 'Installing gotty util' # Enable Services -execute_cmd "systemctl enable mysqld --now" "Enabling Database service" execute_cmd "systemctl enable httpd --now" "Enabling HTTPD service" execute_cmd "systemctl enable php-fpm --now" "Enabling PHP-FPM service"