]> git.arvados.org - arvados.git/blob - tools/ansible/install-arvados-cluster.yml
22613: Add *.containers.__DOMAIN__ to salt scripts.
[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: Load Arvados configuration
14   hosts: all
15   tasks:
16     - name: Load Arvados configuration file
17       delegate_to: localhost
18       ansible.builtin.include_vars:
19         name: arvados_config
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
25
26 - name: Prepare base system
27   hosts: all
28   tasks:
29     - name: Bootstrap packages required for Ansible
30       become: yes
31       ansible.builtin.raw: "apt-get -o DPkg::Lock::Timeout=300 -qy {{ item }}"
32       loop:
33         - update
34         - install acl python3-apt python3-debian
35
36 - name: Install PostgreSQL
37   hosts: arvados_postgresql
38   tasks:
39     - ansible.builtin.include_role:
40         name: arvados_postgresql
41
42 - name: Set up Arvados database
43   hosts: arvados_postgresql,arvados_api
44   tasks:
45     - ansible.builtin.include_role:
46         name: arvados_database
47       run_once: true
48
49 - name: Set up RailsAPI service(s)
50   hosts: arvados_api
51   serial: 1
52   tasks:
53     - ansible.builtin.include_role:
54         name: arvados_api
55
56 - name: Set up API controller(s)
57   hosts: arvados_controller
58   serial: 1
59   tasks:
60     - ansible.builtin.include_role:
61         name: arvados_controller
62
63 - name: Set up WebSocket server
64   hosts: arvados_websocket
65   serial: 1
66   tasks:
67     - ansible.builtin.include_role:
68         name: arvados_websocket
69
70 - name: Set up keepstore(s)
71   hosts: arvados_keepstore
72   serial: 1
73   tasks:
74     - ansible.builtin.include_role:
75         name: arvados_keepstore
76
77 - name: Set up keepproxy(ies)
78   hosts: arvados_keepproxy
79   serial: 1
80   tasks:
81     - ansible.builtin.include_role:
82         name: arvados_keepproxy
83
84 - name: Set up keep-web(s)
85   hosts: arvados_keep_web
86   serial: 1
87   tasks:
88     - ansible.builtin.include_role:
89         name: arvados_keep_web
90
91 - name: Set up Workbench(es)
92   hosts: arvados_workbench
93   serial: 1
94   tasks:
95     - ansible.builtin.include_role:
96         name: arvados_workbench
97
98 - name: Set up shell node(s)
99   hosts: arvados_shell
100   serial: 1
101   tasks:
102     - ansible.builtin.include_role:
103         name: arvados_shell
104
105 - name: Set up local dispatch nodes
106   hosts: arvados_dispatch_local
107   serial: 1
108   tasks:
109     - ansible.builtin.include_role:
110         name: arvados_dispatch_local
111
112 - name: Set up cloud dispatcher(s)
113   hosts: arvados_dispatch_cloud
114   serial: 1
115   tasks:
116     - ansible.builtin.include_role:
117         name: arvados_dispatch_cloud