Head Node Setup

First, ensure you have completed the common setup from the admin setup

The ip address of the head node is important: it is the IP that all users will use to send jobs to the cluster. Ensure this is documented somewhere.

As the distribute user created earlier

when logged into the user distribute, run

mkdir $HOME/server
mkdir $HOME/server/results
mkdir $HOME/server/tmp

You will need a distribute-nodes.yaml file to specify to distribute what the IP addresses of each compute node is in the cluster, and what software / hardware is available (capabilities). here is a currently compiling example from the master branch. Ensure that you use descriptive names for each node as they will appear in the logs. Place this file at /home/distribute/server/distribute-nodes.yaml.

Ensure that distrbute is installed for this user (running distribute should result in some output with no errors)

While Root

Clone the repo with the correct version of distribute you are using

git clone https://github.com/Fluid-Dynamics-Group/distribute --depth 1
cd distribute

copy the server service to the system directory:

sudo cp install/distribute-server.service /etc/systemd/system/

start the service and enable it at startup:

sudo systemctl daemon-reload
sudo systemctl enable distribute-server
sudo systemctl start distribute-server

Note that if you have deviated from username or folder structure above, distribute-server.service will have to be updated with those paths since it relies on hard-coded paths.

Updating

To update, simply reinstall distribute and restart the systemd service on the head node. For a fixed version at the time of writing, this script with work:

cd ~/distribute

# for fish shell
set VERSION "0.14.5"

git fetch -a
git checkout release-$VERSION
git pull

cargo install --path .

rm ~/logs/output.log
systemctl restart distribute-compute

the most recent $VERSION is usually up to date here.

systemctl restart distribute-server