]> git.arvados.org - arvados.git/blob - tools/ansible/install-arvados-cluster.yml
22970: Update Go version in ansible installer.
[arvados.git] / tools / ansible / install-arvados-cluster.yml
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4 #
5 # install-arvados-cluster.yml - Ansible playbook to set up an Arvados cluster
6 #
7 # This playbook installs all services necessary for an Arvados cluster. It is
8 # still in early development, so it does not support all configurations or
9 # integrate with third-party services. Refer to
10 # `files/example-cluster-inventory.yml` for information about how to write
11 # configuration for this playbook.
12
13 - name: Bootstrap nodes
14   hosts: all
15   gather_facts: no
16   tasks:
17     - name: Load Arvados configuration file
18       delegate_to: localhost
19       ansible.builtin.include_vars:
20         name: arvados_config
21         file: "{{ arvados_config_file }}"
22     - name: Load Arvados cluster configuration
23       ansible.builtin.set_fact:
24         arvados_cluster: "{{ arvados_config.Clusters[arvados_cluster_id] }}"
25       failed_when: arvados_cluster is undefined
26     - ansible.builtin.include_role:
27         name: distro_bootstrap
28
29 - name: Install PostgreSQL
30   hosts: arvados_postgresql
31   tasks:
32     - ansible.builtin.include_role:
33         name: arvados_postgresql
34
35 - name: Set up Arvados database
36   hosts: arvados_postgresql,arvados_api
37   tasks:
38     - ansible.builtin.include_role:
39         name: arvados_database
40       run_once: true
41
42 - name: Set up RailsAPI service(s)
43   hosts: arvados_api
44   serial: 1
45   tasks:
46     - ansible.builtin.include_role:
47         name: arvados_api
48
49 - name: Set up API controller(s)
50   hosts: arvados_controller
51   serial: 1
52   tasks:
53     - ansible.builtin.include_role:
54         name: arvados_controller
55
56 - name: Set up WebSocket server
57   hosts: arvados_websocket
58   serial: 1
59   tasks:
60     - ansible.builtin.include_role:
61         name: arvados_websocket
62
63 - name: Set up keepstore(s)
64   hosts: arvados_keepstore
65   serial: 1
66   tasks:
67     - ansible.builtin.include_role:
68         name: arvados_keepstore
69
70 - name: Set up keepproxy(ies)
71   hosts: arvados_keepproxy
72   serial: 1
73   tasks:
74     - ansible.builtin.include_role:
75         name: arvados_keepproxy
76
77 - name: Set up keep-web(s)
78   hosts: arvados_keep_web
79   serial: 1
80   tasks:
81     - ansible.builtin.include_role:
82         name: arvados_keep_web
83
84 - name: Set up Workbench(es)
85   hosts: arvados_workbench
86   serial: 1
87   tasks:
88     - ansible.builtin.include_role:
89         name: arvados_workbench
90
91 - name: Set up shell node(s)
92   hosts: arvados_shell
93   serial: 1
94   tasks:
95     - ansible.builtin.include_role:
96         name: arvados_shell
97
98 - name: Set up local dispatch nodes
99   hosts: arvados_dispatch_local
100   serial: 1
101   tasks:
102     - ansible.builtin.include_role:
103         name: arvados_dispatch_local
104
105 - name: Set up cloud dispatcher(s)
106   hosts: arvados_dispatch_cloud
107   serial: 1
108   tasks:
109     - ansible.builtin.include_role:
110         name: arvados_dispatch_cloud