1 # Copyright (C) The Arvados Authors. All rights reserved.
3 # SPDX-License-Identifier: Apache-2.0
5 # install-arvados-cluster.yml - Ansible playbook to set up an Arvados cluster
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.
13 - name: Load Arvados configuration
16 - name: Load Arvados configuration file
17 delegate_to: localhost
18 ansible.builtin.include_vars:
20 file: "{{ arvados_config_file }}"
21 - name: Load Arvados cluster configuration
22 ansible.builtin.set_fact:
23 arvados_cluster: "{{ arvados_config.Clusters[arvados_cluster_id] }}"
24 failed_when: arvados_cluster is undefined
26 - name: Prepare base system
29 - name: Bootstrap packages required for Ansible
31 ansible.builtin.raw: "apt-get -o DPkg::Lock::Timeout=300 -qy {{ item }}"
34 - install acl python3-apt python3-debian
36 - name: Install PostgreSQL
37 hosts: arvados_postgresql
39 - ansible.builtin.include_role:
40 name: arvados_postgresql
42 - name: Set up Arvados database
43 hosts: arvados_postgresql,arvados_api
45 - ansible.builtin.include_role:
46 name: arvados_database
49 - name: Set up RailsAPI service(s)
53 - ansible.builtin.include_role:
56 - name: Set up API controller(s)
57 hosts: arvados_controller
60 - ansible.builtin.include_role:
61 name: arvados_controller
63 - name: Set up WebSocket server
64 hosts: arvados_websocket
67 - ansible.builtin.include_role:
68 name: arvados_websocket
70 - name: Set up keepstore(s)
71 hosts: arvados_keepstore
74 - ansible.builtin.include_role:
75 name: arvados_keepstore
77 - name: Set up keepproxy(ies)
78 hosts: arvados_keepproxy
81 - ansible.builtin.include_role:
82 name: arvados_keepproxy
84 - name: Set up keep-web(s)
85 hosts: arvados_keep_web
88 - ansible.builtin.include_role:
89 name: arvados_keep_web
91 - name: Set up Workbench(es)
92 hosts: arvados_workbench
95 - ansible.builtin.include_role:
96 name: arvados_workbench
98 - name: Set up shell node(s)
102 - ansible.builtin.include_role:
105 - name: Set up local dispatch nodes
106 hosts: arvados_dispatch_local
109 - ansible.builtin.include_role:
110 name: arvados_dispatch_local
112 - name: Set up cloud dispatcher(s)
113 hosts: arvados_dispatch_cloud
116 - ansible.builtin.include_role:
117 name: arvados_dispatch_cloud