Merge branch '15795-sys-root-token'
[arvados.git] / doc / install / install-manual-prerequisites.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Prerequisites
5 ...
6 {% comment %}
7 Copyright (C) The Arvados Authors. All rights reserved.
8
9 SPDX-License-Identifier: CC-BY-SA-3.0
10 {% endcomment %}
11
12 h2. Supported Cloud and HPC platforms
13
14 Arvados can run in a variety of configurations.  For compute scheduling, Arvados supports HPC clusters using @slurm@, and supports elastic cloud computing on AWS, Google and Azure.  For storage, Arvados can store blocks on regular file systems such as ext4 or xfs, on network file systems such as GPFS, or object storage such as Azure blob storage, Amazon S3, and other object storage that supports the S3 API including Google Cloud Storage and Ceph.
15
16 h2. Hardware (or virtual machines)
17
18 This guide assumes you have seven systems available in the same network subnet:
19
20 <div class="offset1">
21 table(table table-bordered table-condensed).
22 |_. Function|_. Number of nodes|
23 |Arvados API, Crunch dispatcher, Git, Websockets and Workbench|1|
24 |Arvados Compute node|1|
25 |Arvados Keepproxy and Keep-web server|1|
26 |Arvados Keepstore servers|2|
27 |Arvados Shell server|1|
28 |Arvados SSO server|1|
29 </div>
30
31 The number of Keepstore, shell and compute nodes listed above is a minimum. In a real production installation, you will likely run many more of each of those types of nodes. In such a scenario, you would probably also want to dedicate a node to the Workbench server and Crunch dispatcher, respectively. For performance reasons, you may want to run the database server on a separate node as well.
32
33 h2. Supported GNU/Linux distributions
34
35 table(table table-bordered table-condensed).
36 |_. Distribution|_. State|_. Last supported version|
37 |CentOS 7|Supported|Latest|
38 |Debian 10 ("buster")|Supported|Latest|
39 |Debian 9 ("stretch")|Supported|Latest|
40 |Ubuntu 18.04 ("bionic")|Supported|Latest|
41 |Ubuntu 16.04 ("xenial")|Supported|Latest|
42 |Ubuntu 14.04 ("trusty")|EOL|5f943cd451acfbdcddd84e791738c3aa5926bfed (2019-07-10)|
43 |Debian 8 ("jessie")|EOL|5f943cd451acfbdcddd84e791738c3aa5926bfed (2019-07-10)|
44 |Ubuntu 12.04 ("precise")|EOL|8ed7b6dd5d4df93a3f37096afe6d6f81c2a7ef6e (2017-05-03)|
45 |Debian 7 ("wheezy")|EOL|997479d1408139e96ecdb42a60b4f727f814f6c9 (2016-12-28)|
46 |CentOS 6 |EOL|997479d1408139e96ecdb42a60b4f727f814f6c9 (2016-12-28)|
47
48 Arvados packages are published for current Debian releases (until the EOL date), current Ubuntu LTS releases (until the end of standard support), and the latest version of CentOS.
49
50 h2(#repos). Arvados package repositories
51
52 On any host where you install Arvados software, you'll need to set up an Arvados package repository.  They're available for several popular distributions.
53
54 h3. CentOS
55
56 Packages are available for CentOS 7. To install them with yum, save this configuration block in @/etc/yum.repos.d/arvados.repo@:
57
58 <notextile>
59 <pre><code>[arvados]
60 name=Arvados
61 baseurl=http://rpm.arvados.org/CentOS/$releasever/os/$basearch/
62 gpgcheck=1
63 gpgkey=http://rpm.arvados.org/CentOS/RPM-GPG-KEY-curoverse
64 </code></pre>
65 </notextile>
66
67 {% include 'install_redhat_key' %}
68
69 h3. Debian and Ubuntu
70
71 Packages are available for Debian 9 ("stretch"), Ubuntu 16.04 ("xenial") and Ubuntu 18.04 ("bionic").
72
73 First, register the Curoverse signing key in apt's database:
74
75 {% include 'install_debian_key' %}
76
77 Configure apt to retrieve packages from the Arvados package repository. This command depends on your OS vendor and version:
78
79 table(table table-bordered table-condensed).
80 |_. OS version|_. Command|
81 |Debian 9 ("stretch")|<notextile><code><span class="userinput">echo "deb http://apt.arvados.org/ stretch main" &#x7c; sudo tee /etc/apt/sources.list.d/arvados.list</span></code></notextile>|
82 |Ubuntu 16.04 ("xenial")[1]|<notextile><code><span class="userinput">echo "deb http://apt.arvados.org/ xenial main" &#x7c; sudo tee /etc/apt/sources.list.d/arvados.list</span></code></notextile>|
83 |Ubuntu 18.04 ("bionic")[1]|<notextile><code><span class="userinput">echo "deb http://apt.arvados.org/ bionic main" &#x7c; sudo tee /etc/apt/sources.list.d/arvados.list</span></code></notextile>|
84
85 {% include 'notebox_begin' %}
86
87 fn1. Arvados packages for Ubuntu may depend on third-party packages in Ubuntu's "universe" repository.  If you're installing on Ubuntu, make sure you have the universe sources uncommented in @/etc/apt/sources.list@.
88
89 {% include 'notebox_end' %}
90
91 Retrieve the package list:
92
93 <notextile>
94 <pre><code>~$ <span class="userinput">sudo apt-get update</span>
95 </code></pre>
96 </notextile>
97
98 h2. A unique identifier
99
100 Each Arvados installation should have a globally unique identifier, which is a unique 5-character lowercase alphanumeric string. For testing purposes, here is one way to make a random 5-character string:
101
102 <notextile>
103 <pre><code>~$ <span class="userinput">tr -dc 0-9a-z &lt;/dev/urandom | head -c5; echo</span>
104 </code></pre>
105 </notextile>
106
107 You may also use a different method to pick the unique identifier. The unique identifier will be part of the hostname of the services in your Arvados cluster. The rest of this documentation will refer to it as your @uuid_prefix@.
108
109
110 h2. SSL certificates
111
112 There are six public-facing services that require an SSL certificate. If you do not have official SSL certificates, you can use self-signed certificates.
113
114 {% include 'notebox_begin' %}
115
116 Most Arvados clients and services will accept self-signed certificates when the @ARVADOS_API_HOST_INSECURE@ environment variable is set to @true@.  However, web browsers generally do not make it easy for users to accept self-signed certificates from Web sites.
117
118 Users who log in through Workbench will visit at least three sites: the SSO server, the API server, and Workbench itself.  When a browser visits each of these sites, it will warn the user if the site uses a self-signed certificate, and the user must accept it before continuing.  This procedure usually only needs to be done once in a browser.
119
120 After that's done, Workbench includes JavaScript clients for other Arvados services.  Users are usually not warned if these client connections are refused because the server uses a self-signed certificate, and it is especially difficult to accept those cerficiates:
121
122 * JavaScript connects to the Websockets server to provide incremental page updates and view logs from running jobs.
123 * JavaScript connects to the API and Keepproxy servers to upload local files to collections.
124 * JavaScript connects to the Keep-web server to download log files.
125
126 In sum, Workbench will be much less pleasant to use in a cluster that uses self-signed certificates.  You should avoid using self-signed certificates unless you plan to deploy a cluster without Workbench; you are deploying only to evaluate Arvados as an individual system administrator; or you can push configuration to users' browsers to trust your self-signed certificates.
127
128 {% include 'notebox_end' %}
129
130 By convention, we use the following hostname pattern:
131
132 <div class="offset1">
133 table(table table-bordered table-condensed).
134 |_. Function|_. Hostname|
135 |Arvados API|@uuid_prefix@.your.domain|
136 |Arvados Git server|git.@uuid_prefix@.your.domain|
137 |Arvados Keepproxy server|keep.@uuid_prefix@.your.domain|
138 |Arvados Keep-web server|download.@uuid_prefix@.your.domain
139 _and_
140 *.collections.@uuid_prefix@.your.domain or
141 *<notextile>--</notextile>collections.@uuid_prefix@.your.domain or
142 collections.@uuid_prefix@.your.domain (see the "keep-web install docs":install-keep-web.html)|
143 |Arvados SSO Server|auth.your.domain|
144 |Arvados Websockets endpoint|ws.@uuid_prefix@.your.domain|
145 |Arvados Workbench|workbench.@uuid_prefix@.your.domain|
146 </div>