From 494fcaa9f3a2a295ed635bfc4a1cf9352760d7cf Mon Sep 17 00:00:00 2001 From: Aditya Ujeniya Date: Thu, 5 Dec 2024 11:19:18 +0100 Subject: [PATCH] feat: prerequisite installation script --- README.md | 26 +++++++++++++++++++ prerequisite_installation_script.sh | 40 +++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 prerequisite_installation_script.sh diff --git a/README.md b/README.md index 23698b1..7cd28ec 100755 --- a/README.md +++ b/README.md @@ -18,6 +18,32 @@ It includes the following containers: The setup comes with fixture data for a Job archive, cc-metric-store checkpoints, InfluxDB, MariaDB, and a LDAP user directory. +## Prerequisites + +For all the docker services to work correctly, you will need the following tools installed: + +1. `docker` and `docker-compose` +2. `golang` (for compiling cc-metric-store) +3. `perl` (for migrateTimestamp.pl) with Cpanel::JSON::XS, Data::Dumper, Time::Piece, Sort::Versions and File::Slurp perl modules. +4. `npm` (for cc-backend) +5. `make` (for building slurm base image) + +It is also recommended to add docker service to sudouser group since the setupDev.sh script assumes sudo permissions for docker and docker-compose services. + +You can use: + +``` +sudo groupadd docker +sudo usermod -aG docker $USER + +# restart after adding your docker with your user to sudo group +sudo shutdown -r -t 0 +``` + +Note: You can install all these dependencies via predefined installation steps in `prerequisite_installation_script.sh`. + +If you are using different linux flavors, you will have to adapt `prerequisite_installation_script.sh` as well as `setupDev.sh`. + ## Configuration Templates Located in `./templates` diff --git a/prerequisite_installation_script.sh b/prerequisite_installation_script.sh new file mode 100644 index 0000000..e061a13 --- /dev/null +++ b/prerequisite_installation_script.sh @@ -0,0 +1,40 @@ +#!/bin/bash -l + +sudo apt-get update +sudo apt-get upgrade -f -y + +# Add Docker's official GPG key: +sudo apt-get update +sudo apt-get install ca-certificates curl +sudo install -m 0755 -d /etc/apt/keyrings +sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc +sudo chmod a+r /etc/apt/keyrings/docker.asc + +# Add the repository to Apt sources: +echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +sudo apt-get update + +sudo apt-get install -f -y gcc +sudo apt-get install -f -y npm +sudo apt-get install -f -y make +sudo apt-get install -f -y gh +sudo apt-get install -f -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin +sudo apt-get install -f -y docker-compose +sudo apt install perl -f -y libdatetime-perl libjson-perl +sudo apt-get install -f -y golang-go + +sudo cpan Cpanel::JSON::XS +sudo cpan File::Slurp +sudo cpan Data::Dumper +sudo cpan Time::Piece +sudo cpan Sort::Versions + +sudo groupadd docker +sudo usermod -aG docker ubuntu + +sudo shutdown -r -t 0 + +