19744: Reorder python install steps to address dependency issue.
[arvados.git] / doc / install / automatic.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Automatic single-node install
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 {% include 'notebox_begin' %}
13 This installation method is not fully implemented, which is why this page is not yet listed in the "table of installation options":{{site.baseurl}}/install/index.html or in the left nav.
14 {% include 'notebox_end' %}
15
16 This method sets up a new Arvados cluster using a single host/VM. It is the easiest way to get a new production cluster up and running.
17
18 A single-node installation supports all Arvados functionality at small scale. Substantial workloads will require additional nodes and configuration steps.
19
20 h2. Prerequisites
21
22 You will need:
23 * a server host running Debian 10 (buster) or Debian 11 (bullseye).
24 * a unique 5-character ID like @x9999@ for your cluster (first character should be @[a-w]@ for a long-lived / production cluster; all characters are @[a-z0-9]@).
25 * a DNS name like @x9999.example.com@ that resolves to your server host (or a load balancer / proxy that passes HTTP requests on port 80[1] and HTTPS requests on ports 443 and 4440-4460 through to the same port on your server host).
26 * a firewall setup that allows incoming connections to ports 80[1], 443, and 4440-4460.
27
28 fn1. Port 80 is only used to obtain TLS certificates automatically from Let's Encrypt. It is not needed if you have another way to provision certificates.
29
30 h2. Options
31
32 Arvados needs a PostgreSQL database. To get started quickly, install the postgresql-server package on your server host.
33
34 <pre>
35 # apt install postgresql
36 </pre>
37
38 Arvados normally uses cloud VMs or a Slurm/LSF cluster to run containers. To get started quickly, install Docker on your system host. The @arvados-server init@ command, as shown below, will configure Arvados to run containers on the system host.
39
40 <pre>
41 # apt install docker.io
42 </pre>
43
44 Arvados needs a login backend. To get started quickly, add a user account on your server host and assign a password. The @arvados-server init ... -login pam@ option, as shown below, will configure Arvados so you can log in with this username and password.
45
46 <pre>
47 # adduser exampleUserName
48 </pre>
49
50 h2. Initialize the cluster
51
52 <pre>
53 # echo > /etc/apt/sources.list.d/arvados.list "deb http://apt.arvados.org/$(lsb_release -sc) $(lsb_release -sc) main"
54 # apt update
55 # apt install arvados-server-easy
56 # arvados-server init -cluster-id x9999 -domain x9999.example.com -tls acme -login pam
57 </pre>
58
59 When the "init" command is finished, navigate to the link shown in the terminal (e.g., @https://x9999.example.com/@) and log in with the account you created above.
60
61 Activate your new Arvados user account. Copy the UUID (looks like @x9999-tpzed-xxxxxxxxxxxxxxx@) from your browser's location bar and run:
62
63 <pre>
64 # arv sudo user setup --uuid x9999-tpzed-xxxxxxxxxxxxxxx
65 </pre>
66
67 Run the diagnostics tool to ensure everything is working.
68
69 <pre>
70 # arv sudo diagnostics
71 </pre>
72
73 h2. Customize the cluster
74
75 Things you should plan to update before using your cluster in production:
76 * "Set up Google login":{{site.baseurl}}/install/setup-login.html or another authentication option.
77 * "Set up a wildcard TLS certificate and DNS name,":{{site.baseurl}}/install/install-manual-prerequisites.html#dnstls or enable @TrustAllContent@ mode.
78 * Update storage configuration to use a cloud storage bucket ("S3":{{site.baseurl}}/install/configure-s3-object-storage.html or "Azure":{{site.baseurl}}/install/configure-azure-blob-storage.html) instead of the local filesystem.
79 * Update "CloudVMs configuration":{{site.baseurl}}/install/crunch2-cloud/install-dispatch-cloud.html to use a cloud provider to bring up VMs on demand instead of running containers on the server host.
80
81 h2. Updating configuration
82
83 After updating your configuration file (@/etc/arvados/config.yml@), notify the server:
84
85 <pre>
86 # systemctl reload arvados-server
87 </pre>
88
89 Optionally, add "AutoReloadConfig: true" at the top of @/etc/arvados/config.yml@. Arvados will automatically reload the config file when it changes.
90
91 <pre>
92 AutoReloadConfig: true
93 Clusters:
94   [...]
95 </pre>