Multi host Arvados

  1. Install Saltstack
  2. Install dependencies
  3. Install Arvados using Saltstack
  4. DNS configuration
  5. Initial user and login

Install Saltstack

If you already have a Saltstack environment you can skip this section.

The simplest way to get Salt up and running on a node is to use the bootstrap script they provide:

curl -L https://bootstrap.saltstack.com -o /tmp/bootstrap_salt.sh
sudo sh /tmp/bootstrap_salt.sh -XUdfP -x python3

For more information check Saltstack’s documentation

Install dependencies

Arvados depends in a few applications and packages (postgresql, nginx+passenger, ruby) that can also be installed using their respective Saltstack formulas.

The formulas we use are:

There are example Salt pillar files for each of those formulas in the arvados-formula’s test/salt/pillar/examples directory. As they are, they allow you to get all the main Arvados components up and running.

Install Arvados using Saltstack

You will need to check out the Arvados git repository to get the Salt scripts. They can be found in the tools/salt-install directory.

The Arvados formula we maintain is located in the Saltstack’s community repository of formulas:

The development version lives in our own repository

This last one might break from time to time, as we try and add new features. Use with caution.

As much as possible, we try to keep it up to date, with example pillars to help you deploy Arvados.

For those familiar with Saltstack, the process to get it deployed is similar to any other formula:

1. Fork/copy the formula to your Salt master host.
2. Edit the Arvados, nginx, postgres, locale and docker pillars to match your desired configuration.
3. Run a state.apply to get it deployed.

DNS configuration

After the setup is done, you need to set up your DNS to be able to access the cluster’s nodes.

The simplest way to do this is to add entries in the /etc/hosts file of every host:

export CLUSTER="arva2"
export DOMAIN="arv.local"

echo A.B.C.a  api ${CLUSTER}.${DOMAIN} api.${CLUSTER}.${DOMAIN} >> /etc/hosts
echo A.B.C.b  keep keep.${CLUSTER}.${DOMAIN} >> /etc/hosts
echo A.B.C.c  keep0 keep0.${CLUSTER}.${DOMAIN} >> /etc/hosts
echo A.B.C.d  collections collections.${CLUSTER}.${DOMAIN} >> /etc/hosts
echo A.B.C.e  download download.${CLUSTER}.${DOMAIN} >> /etc/hosts
echo A.B.C.f  ws ws.${CLUSTER}.${DOMAIN} >> /etc/hosts
echo A.B.C.g  workbench workbench.${CLUSTER}.${DOMAIN} >> /etc/hosts
echo A.B.C.h  workbench2 workbench2.${CLUSTER}.${DOMAIN}" >> /etc/hosts

Replacing in each case de A.B.C.x IP with the corresponding IP of the node.

If your infrastructure uses another DNS service setup, add the corresponding entries accordingly.

Initial user and login

At this point you should be able to log into the Arvados cluster.

If you did not change the defaults, the initial URL will be:

  • https://workbench.arva2.arv.local

or, in general, the url format will be:

  • https://workbench.<cluster>.<domain>

By default, the provision script creates an initial user for testing purposes. This user is configured as administrator of the newly created cluster.

Assuming you didn’t change the defaults, the initial credentials are:

  • User: ‘admin’
  • Password: ‘password’
  • Email: ‘admin@arva2.arv.local’

Previous: Single host Arvados Next: Arvados on Kubernetes

The content of this documentation is licensed under the Creative Commons Attribution-Share Alike 3.0 United States licence.
Code samples in this documentation are licensed under the Apache License, Version 2.0.