Arvados in a VM with Vagrant

  1. Vagrant
  2. Final steps
    1. DNS configuration
    2. Install root certificate
  3. Initial user and login
  4. Test the installed cluster running a simple workflow

Vagrant

This is a package-based installation method. Start by cloning the 2.7-release branch from https://git.arvados.org/arvados.git . The Salt scripts are available in the tools/salt-install directory.

A Vagrantfile is provided to install Arvados in a virtual machine on your computer using Vagrant.

To get it running, install Vagrant in your computer, edit the variables at the top of the provision.sh script as needed, and run

vagrant up

If you want to reconfigure the running box, you can just:

1. edit the pillars to suit your needs
2. run

vagrant reload --provision

Final configuration steps

DNS configuration

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

The simplest way to do this is to edit your /etc/hosts file (as root):

export CLUSTER="arva2"
export DOMAIN="arv.local"
export HOST_IP="127.0.0.2"    # This is valid either if installing in your computer directly
                              # or in a Vagrant VM. If you're installing it on a remote host
                              # just change the IP to match that of the host.
echo "${HOST_IP} api keep keep0 collections download ws workbench workbench2 ${CLUSTER}.${DOMAIN} api.${CLUSTER}.${DOMAIN} keep.${CLUSTER}.${DOMAIN} keep0.${CLUSTER}.${DOMAIN} collections.${CLUSTER}.${DOMAIN} download.${CLUSTER}.${DOMAIN} ws.${CLUSTER}.${DOMAIN} workbench.${CLUSTER}.${DOMAIN} workbench2.${CLUSTER}.${DOMAIN}" >> /etc/hosts

Install root certificate

Arvados uses SSL to encrypt communications. Its UI uses AJAX which will silently fail if the certificate is not valid or signed by an unknown Certification Authority.

For this reason, the arvados-formula has a helper state to create a root certificate to authorize Arvados services. The provision.sh script will leave a copy of the generated CA’s certificate (arvados-snakeoil-ca.pem) in the script’s directory so you can add it to your workstation.

Installing the root certificate into your web browser will prevent security errors when accessing Arvados services with your web browser.

  1. Go to the certificate manager in your browser.
    • In Chrome, this can be found under “Settings → Advanced → Manage Certificates” or by entering chrome://settings/certificates in the URL bar.
    • In Firefox, this can be found under “Preferences → Privacy & Security” or entering about:preferences#privacy in the URL bar and then choosing “View Certificates…”.
  2. Select the “Authorities” tab, then press the “Import” button. Choose arvados-snakeoil-ca.pem

The certificate will be added under the “Arvados Formula”.

To access your Arvados instance using command line clients (such as arv-get and arv-put) without security errors, install the certificate into the OS certificate storage.

  • On Debian/Ubuntu:
cp arvados-root-cert.pem /usr/local/share/ca-certificates/
/usr/sbin/update-ca-certificates
  • On Alma/Red Hat/Rocky:
cp arvados-root-cert.pem /etc/pki/ca-trust/source/anchors/
/usr/bin/update-ca-trust

Initial user and login

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

If you didn’t change the defaults, the initial URL will be:

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

or, in general, the url format will be:

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

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’

Test the installed cluster running a simple workflow

As documented in the Single Host installation page, You can run a test workflow to verify the installation finished correctly. To do so, you can follow these steps:

vagrant ssh

and once in the instance:

cd /tmp/cluster_tests
./run-test.sh

Previous: Set up Docker

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.