|
| 1 | +# |
| 2 | +# Ophidia Server |
| 3 | +# Copyright (C) 2012-2023 CMCC Foundation |
| 4 | +# |
| 5 | +# This program is free software: you can redistribute it and/or modify |
| 6 | +# it under the terms of the GNU General Public License as published by |
| 7 | +# the Free Software Foundation, either version 3 of the License, or |
| 8 | +# (at your option) any later version. |
| 9 | +# |
| 10 | +# This program is distributed in the hope that it will be useful, |
| 11 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 | +# GNU General Public License for more details. |
| 14 | +# |
| 15 | +# You should have received a copy of the GNU General Public License |
| 16 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 17 | +# |
| 18 | + |
| 19 | +#!/bin/bash |
| 20 | +set -e |
| 21 | +myhost=`hostname` |
| 22 | +myport=3306 |
| 23 | +myuser=ophidia |
| 24 | +mypassword=ophidia2022 |
| 25 | +mymemory=16384 |
| 26 | +numnodes=1 |
| 27 | +export PREFIX=/scratch/shared/ |
| 28 | +export MYSQLENV=mysql-env |
| 29 | +export CNFDIR=$(realpath "$(dirname "$0")") |
| 30 | +export TMP=$PREFIX/tmp; |
| 31 | +export SPACK_USER_CACHE_PATH=$PREFIX/spack/tmp; |
| 32 | +sed -i "s|# build_jobs: 16|build_jobs: 2|g" $SPACK_ROOT/etc/spack/defaults/config.yaml |
| 33 | +echo "[LOG] OPHIDIA COMPONENTS INSTALLATION" |
| 34 | +spack install ophidia-primitives |
| 35 | +spack install ophidia-io-server |
| 36 | +spack install ophidia-analytics-framework |
| 37 | +spack install ophidia-server |
| 38 | +export OPHIDIA_PRIMITIVES=`spack location -i ophidia-primitives` |
| 39 | +export OPHIDIA_IOSERVER=`spack location -i ophidia-io-server` |
| 40 | +export OPHIDIA_FRAMEWORK=`spack location -i ophidia-analytics-framework` |
| 41 | +export OPHIDIA_SERVER=`spack location -i ophidia-server` |
| 42 | +echo "[LOG] CONDA ENVIRONMENT CREATION" |
| 43 | +wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh |
| 44 | +bash Anaconda3-2022.10-Linux-x86_64.sh |
| 45 | +conda create python=3.7 --prefix=$PREFIX/$MYSQLENV -y |
| 46 | +source $CONDA_PREFIX/etc/profile.d/conda.sh |
| 47 | +conda activate $PREFIX/$MYSQLENV |
| 48 | + |
| 49 | +echo "[LOG] PYOPHIDIA INSTALLATION IN THE ENVIRONMENT: $MYSQLENV" |
| 50 | +conda install -c conda-forge -y pyophidia |
| 51 | + |
| 52 | +echo "[LOG] MYSQL INSTALLATION IN THE ENVIRONMENT: $MYSQLENV" |
| 53 | +conda install -y mysql |
| 54 | + |
| 55 | +echo "[LOG] MYSQL CONFIGURATION" |
| 56 | +cd $PREFIX/$MYSQLENV |
| 57 | +mkdir etc |
| 58 | +mkdir -p var/lib/mysql |
| 59 | +mkdir -p var/log/mysql/mysql |
| 60 | +mkdir -p var/run/mysqld |
| 61 | +mkdir -p tmp |
| 62 | +mkdir ophidia-primitives |
| 63 | +cd $PREFIX/$MYSQLENV/ophidia-primitives/ |
| 64 | +ln -s $OPHIDIA_PRIMITIVES/lib/ lib |
| 65 | +cp $CNFDIR/my.cnf.template $PREFIX/$MYSQLENV/etc/my.cnf |
| 66 | +sed -i "s|\$PORT|${myport}|g" $PREFIX/$MYSQLENV/etc/my.cnf |
| 67 | +sed -i "s|\$USER|${myuser}|g" $PREFIX/$MYSQLENV/etc/my.cnf |
| 68 | +sed -i "s|\$PASSWORD|${mypassword}|g" $PREFIX/$MYSQLENV/etc/my.cnf |
| 69 | +sed -i "s|\$PREFIX|$PREFIX|g" $PREFIX/$MYSQLENV/etc/my.cnf |
| 70 | +sed -i "s|\$MYSQLENV|$MYSQLENV|g" $PREFIX/$MYSQLENV/etc/my.cnf |
| 71 | + |
| 72 | +echo "[LOG] STARTING MYSQL SERVER..." |
| 73 | +cd $PREFIX/$MYSQLENV |
| 74 | +bin/mysqld --defaults-file=$PREFIX/$MYSQLENV/etc/my.cnf --user=$USER --initialize-insecure |
| 75 | +bin/mysqld_safe --defaults-file=$PREFIX/$MYSQLENV/etc/my.cnf & |
| 76 | +sleep 5 |
| 77 | +cp $CNFDIR/mysql.sql.template $CNFDIR/mysql.sql |
| 78 | +sed -i "s|\$USER|${myuser}|g" $CNFDIR/mysql.sql |
| 79 | +sed -i "s|\$PASSWORD|${mypassword}|g" $CNFDIR/mysql.sql |
| 80 | +bin/mysql -u root --skip-password < $CNFDIR/mysql.sql |
| 81 | +sed -i "s|###||g" $PREFIX/$MYSQLENV/etc/my.cnf |
| 82 | +chmod 600 $PREFIX/$MYSQLENV/etc/my.cnf |
| 83 | + |
| 84 | +bin/mysql --defaults-file=$PREFIX/$MYSQLENV/etc/my.cnf ophidiadb < $OPHIDIA_FRAMEWORK/etc/ophidiadb.sql |
| 85 | +spack load gsl |
| 86 | +bin/mysql -u root -p${mypassword} mysql < $OPHIDIA_PRIMITIVES/etc/create_func.sql |
| 87 | + |
| 88 | +echo "[LOG] CHECK SRUN INSTALLATION" |
| 89 | +if ! command -v srun > $CNFDIR/slurm_path.txt |
| 90 | +then |
| 91 | + if ! spack location -i slurm |
| 92 | + then |
| 93 | + $CNFDIR/slurm-conf.sh |
| 94 | + fi |
| 95 | + export SLURM_PATH=`spack location -i slurm` |
| 96 | +else |
| 97 | + SRUN_PATH=$(cat $CNFDIR/slurm_path.txt) |
| 98 | + tmp=$(dirname $SRUN_PATH) |
| 99 | + export SLURM_PATH=${tmp%/*} |
| 100 | +fi |
| 101 | +echo "[LOG] SLURM INSTALLED IN $SLURM_PATH" |
| 102 | +echo "[LOG] OPHIDIA SERVER CONFIGURATION" |
| 103 | +sed -i "s|127.0.0.1|${myhost}|g" $OPHIDIA_SERVER/etc/ophidiadb.conf |
| 104 | +sed -i "s|3306|${myport}|g" $OPHIDIA_SERVER/etc/ophidiadb.conf |
| 105 | +sed -i "s|root|${myuser}|g" $OPHIDIA_SERVER/etc/ophidiadb.conf |
| 106 | +sed -i "s|abcd|${mypassword}|g" $OPHIDIA_SERVER/etc/ophidiadb.conf |
| 107 | +sed -i "s|127.0.0.1|${myhost}|g" $OPHIDIA_SERVER/etc/server.conf |
| 108 | +sed -i "s|OPH_EXTRA_LOCATION=/usr/local/ophidia/extra|OPH_EXTRA_LOCATION=${SLURM_PATH}|g" $OPHIDIA_SERVER/etc/server.conf |
| 109 | +sed -i "s|OPH_IOSERVER_LOCATION=/usr/local/ophidia/oph-cluster/oph-io-server|OPH_IOSERVER_LOCATION=${OPHIDIA_IOSERVER}|g" $OPHIDIA_SERVER/etc/server.conf |
| 110 | +echo "ENABLE_CLUSTER_DEPLOYMENT=yes" >> $OPHIDIA_SERVER/etc/server.conf |
| 111 | +echo "ENABLE_CLUSTER_INCREASE=yes" >> $OPHIDIA_SERVER/etc/server.conf |
| 112 | +sed -i "s|127.0.0.1|${myhost}|g" $OPHIDIA_SERVER/etc/script/start_ioserver.sh |
| 113 | +sed -i "s|3306|${myport}|g" $OPHIDIA_SERVER/etc/script/start_ioserver.sh |
| 114 | +sed -i "s|root|${myuser}|g" $OPHIDIA_SERVER/etc/script/start_ioserver.sh |
| 115 | +sed -i "s|abcd|${mypassword}|g" $OPHIDIA_SERVER/etc/script/start_ioserver.sh |
| 116 | +sed -i "s|65001|65000|g" $OPHIDIA_SERVER/etc/script/oph_ioserver.conf.template |
| 117 | +if [ $numnodes -eq 1 ]; then |
| 118 | + sed -i "s|--exclusive||g" $OPHIDIA_SERVER/etc/script/oph_start.sh |
| 119 | +fi |
| 120 | + |
| 121 | +cd $OPHIDIA_SERVER |
| 122 | +mkdir -p log |
| 123 | +mkdir -p etc/cert |
| 124 | +cd $OPHIDIA_SERVER/etc/cert |
| 125 | +cp $CNFDIR/cert.sh $OPHIDIA_SERVER/etc/cert/cert.sh |
| 126 | +./cert.sh |
| 127 | +spack stage ophidia-server |
| 128 | +spack cd ophidia-server |
| 129 | + |
| 130 | +cp -r authz $OPHIDIA_SERVER |
| 131 | + |
| 132 | +echo "[LOG] OPHIDIA ANALYTICS FRAMEWORK CONFIGURATION" |
| 133 | +sed -i "s|127.0.0.1|${myhost}|g" $OPHIDIA_FRAMEWORK/etc/oph_configuration |
| 134 | +sed -i "s|3306|${myport}|g" $OPHIDIA_FRAMEWORK/etc/oph_configuration |
| 135 | +sed -i "s|root|${myuser}|g" $OPHIDIA_FRAMEWORK/etc/oph_configuration |
| 136 | +sed -i "s|abcd|${mypassword}|g" $OPHIDIA_FRAMEWORK/etc/oph_configuration |
| 137 | +sed -i "s|1024|${mymemory}|g" $OPHIDIA_FRAMEWORK/etc/oph_configuration |
| 138 | +sed -i "s|127.0.0.1|${myhost}|g" $OPHIDIA_FRAMEWORK/etc/oph_soap_configuration |
| 139 | + |
| 140 | +mkdir -p $HOME/.ophidia/ |
| 141 | +chmod 700 $HOME/.ophidia/ |
| 142 | +echo "[mysql]" >> $HOME/.my.cnf |
| 143 | +echo "user=${myuser}" >> $HOME/.my.cnf |
| 144 | +echo "password=${mypassword}" >> $HOME/.my.cnf |
| 145 | +cd $OPHIDIA_FRAMEWORK |
| 146 | +mkdir -p html/sessions |
| 147 | +mkdir -p log |
| 148 | + |
| 149 | +echo "[LOG] MYSQL SERVER SHUTDOWN" |
| 150 | +cd $PREFIX/$MYSQLENV |
| 151 | +bin/mysqladmin -u root shutdown -pophidia2022 |
| 152 | +conda deactivate |
0 commit comments