2022-06-01 11:27:50 +02:00
|
|
|
#!/bin/bash
|
2024-10-14 23:00:44 +02:00
|
|
|
echo ""
|
2024-10-24 14:54:40 +02:00
|
|
|
echo "|--------------------------------------------------------------------------------------|"
|
|
|
|
echo "| Welcome to cc-docker automatic deployment script. |"
|
|
|
|
echo "| Make sure you have sudo rights to run docker services |"
|
|
|
|
echo "| This script assumes that docker command is added to sudo group |"
|
|
|
|
echo "| This means that docker commands do not explicitly require |"
|
|
|
|
echo "| 'sudo' keyword to run. You can use this following command: |"
|
|
|
|
echo "| |"
|
|
|
|
echo "| > sudo groupadd docker |"
|
|
|
|
echo "| > sudo usermod -aG docker $USER |"
|
|
|
|
echo "| |"
|
|
|
|
echo "| This will add docker to the sudo usergroup and all the docker |"
|
|
|
|
echo "| command will run as sudo by default without requiring |"
|
|
|
|
echo "| 'sudo' keyword. |"
|
|
|
|
echo "|--------------------------------------------------------------------------------------|"
|
2024-10-14 23:00:44 +02:00
|
|
|
echo ""
|
2022-06-01 11:27:50 +02:00
|
|
|
|
2024-10-24 14:54:40 +02:00
|
|
|
export UID_U=$(id -u $USER)
|
|
|
|
export GID_G=$(id -g $USER)
|
|
|
|
|
2022-06-20 18:53:44 +02:00
|
|
|
# Check cc-backend, touch job.db if exists
|
|
|
|
if [ ! -d cc-backend ]; then
|
|
|
|
echo "'cc-backend' not yet prepared! Please clone cc-backend repository before starting this script."
|
|
|
|
echo -n "Stopped."
|
|
|
|
exit
|
|
|
|
else
|
|
|
|
cd cc-backend
|
|
|
|
if [ ! -d var ]; then
|
2024-10-10 22:09:01 +02:00
|
|
|
wget https://hpc-mover.rrze.uni-erlangen.de/HPC-Data/0x7b58aefb/eig7ahyo6fo2bais0ephuf2aitohv1ai/job-archive-demo.tar
|
|
|
|
tar xf job-archive-demo.tar
|
|
|
|
rm ./job-archive-demo.tar
|
2024-10-10 23:56:44 +02:00
|
|
|
|
|
|
|
cp ./configs/env-template.txt .env
|
|
|
|
cp ./configs/config-demo.json config.json
|
|
|
|
|
2024-10-14 23:00:44 +02:00
|
|
|
make
|
|
|
|
|
2024-10-10 22:09:01 +02:00
|
|
|
./cc-backend -migrate-db
|
|
|
|
./cc-backend --init-db --add-user demo:admin:AdminDev
|
|
|
|
cd ..
|
2022-06-20 18:53:44 +02:00
|
|
|
else
|
2024-10-10 22:09:01 +02:00
|
|
|
cd ..
|
|
|
|
# echo "'cc-backend/var' exists. Cautiously exiting."
|
|
|
|
# echo -n "Stopped."
|
|
|
|
# exit
|
2022-06-20 18:53:44 +02:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2024-10-14 23:00:44 +02:00
|
|
|
mkdir -m777 data
|
|
|
|
|
2022-06-23 18:05:08 +02:00
|
|
|
# Download unedited checkpoint files to ./data/cc-metric-store-source/checkpoints
|
|
|
|
if [ ! -d data/cc-metric-store-source ]; then
|
2024-10-10 15:04:47 +02:00
|
|
|
mkdir -p data/cc-metric-store-source/checkpoints
|
|
|
|
cd data/cc-metric-store-source/checkpoints
|
|
|
|
wget https://hpc-mover.rrze.uni-erlangen.de/HPC-Data/0x7b58aefb/eig7ahyo6fo2bais0ephuf2aitohv1ai/cc-metric-store-checkpoints.tar.xz
|
|
|
|
tar xf cc-metric-store-checkpoints.tar.xz
|
|
|
|
rm cc-metric-store-checkpoints.tar.xz
|
|
|
|
cd ../../../
|
2022-06-01 11:27:50 +02:00
|
|
|
else
|
2022-06-23 18:05:08 +02:00
|
|
|
echo "'data/cc-metric-store-source' already exists!"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Update timestamps
|
|
|
|
perl ./migrateTimestamps.pl
|
|
|
|
|
2023-06-23 06:37:41 +02:00
|
|
|
# Create archive folder for rewritten ccms checkpoints
|
2022-06-23 18:05:08 +02:00
|
|
|
if [ ! -d data/cc-metric-store/archive ]; then
|
|
|
|
mkdir -p data/cc-metric-store/archive
|
|
|
|
fi
|
|
|
|
|
|
|
|
# cleanup sources
|
|
|
|
# rm -r ./data/job-archive-source
|
2024-10-10 22:09:01 +02:00
|
|
|
# rm -r ./data/cc-metric-store-source
|
2022-06-23 18:05:08 +02:00
|
|
|
|
2025-01-28 21:54:48 +01:00
|
|
|
if [ ! -d data/mariadb ]; then
|
|
|
|
mkdir -p data/mariadb
|
|
|
|
cat > data/mariadb/01.databases.sql <<EOF
|
|
|
|
CREATE DATABASE IF NOT EXISTS \`ccbackend\`;
|
|
|
|
EOF
|
|
|
|
else
|
|
|
|
echo "'data/mariadb' already exists!"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -d data/ldap ]; then
|
|
|
|
mkdir -p data/ldap
|
|
|
|
cat > data/ldap/add_users.ldif <<EOF
|
|
|
|
dn: ou=users,dc=example,dc=com
|
|
|
|
objectClass: organizationalUnit
|
|
|
|
ou: users
|
|
|
|
|
|
|
|
dn: uid=ldapuser,ou=users,dc=example,dc=com
|
|
|
|
objectClass: inetOrgPerson
|
|
|
|
objectClass: posixAccount
|
|
|
|
objectClass: top
|
|
|
|
cn: Ldap User
|
|
|
|
sn: User
|
|
|
|
uid: ldapuser
|
|
|
|
uidNumber: 1
|
|
|
|
gidNumber: 1
|
|
|
|
homeDirectory: /home/ldapuser
|
|
|
|
userPassword: {SSHA}sQRqFQtuiupej7J/rbrQrTwYEHDduV+N
|
|
|
|
EOF
|
|
|
|
|
|
|
|
else
|
|
|
|
echo "'data/ldap' already exists!"
|
|
|
|
fi
|
|
|
|
|
2022-06-23 18:05:08 +02:00
|
|
|
# prepare folders for influxdb2
|
|
|
|
if [ ! -d data/influxdb ]; then
|
|
|
|
mkdir -p data/influxdb/data
|
2024-10-10 23:56:44 +02:00
|
|
|
mkdir -p data/influxdb/config
|
2022-06-23 18:05:08 +02:00
|
|
|
else
|
|
|
|
echo "'data/influxdb' already exists!"
|
2022-06-01 11:27:50 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Check dotenv-file and docker-compose-yml, copy accordingly if not present and build docker services
|
|
|
|
if [ ! -d .env ]; then
|
2022-06-09 11:38:26 +02:00
|
|
|
cp templates/env.default ./.env
|
2022-06-01 11:27:50 +02:00
|
|
|
fi
|
|
|
|
|
2024-10-10 15:04:47 +02:00
|
|
|
if [ ! -f docker-compose.yml ]; then
|
2022-06-09 11:38:26 +02:00
|
|
|
cp templates/docker-compose.yml.default ./docker-compose.yml
|
2022-06-01 11:27:50 +02:00
|
|
|
fi
|
|
|
|
|
2024-10-10 22:09:01 +02:00
|
|
|
docker-compose down
|
2024-10-22 20:27:09 +02:00
|
|
|
docker-compose down --remove-orphans
|
2024-10-10 22:09:01 +02:00
|
|
|
|
|
|
|
cd slurm/base/
|
|
|
|
make
|
|
|
|
cd ../..
|
|
|
|
|
2022-06-01 11:27:50 +02:00
|
|
|
docker-compose build
|
2022-06-23 18:05:08 +02:00
|
|
|
docker-compose up -d
|
2022-06-01 11:27:50 +02:00
|
|
|
|
2025-01-28 21:54:48 +01:00
|
|
|
cp -f config.json cc-backend/config.json
|
|
|
|
|
2024-10-10 22:09:01 +02:00
|
|
|
echo ""
|
2024-10-24 14:54:40 +02:00
|
|
|
echo "|--------------------------------------------------------------------------------------|"
|
|
|
|
echo "| Check logs for each slurm service by using these commands: |"
|
|
|
|
echo "| docker-compose logs slurmctld |"
|
|
|
|
echo "| docker-compose logs slurmdbd |"
|
|
|
|
echo "| docker-compose logs slurmrestd |"
|
|
|
|
echo "| docker-compose logs node01 |"
|
|
|
|
echo "|======================================================================================|"
|
|
|
|
echo "| Setup complete, containers are up by default: Shut down with 'docker-compose down'. |"
|
|
|
|
echo "| Use './cc-backend/cc-backend -server' to start cc-backend. |"
|
|
|
|
echo "| Use scripts in /scripts to load data into influx or mariadb. |"
|
|
|
|
echo "|--------------------------------------------------------------------------------------|"
|
|
|
|
echo ""
|