Infra: Ansible Nomad II
[csit.git] / resources / tools / testbed-setup / ansible / roles / nomad / tasks / main.yaml
1 ---
2 # file: roles/nomad/tasks/main.yaml
3
4 - name: Inst - Prerequisites
5   package:
6     name: "{{ packages | flatten(levels=1) }}"
7     state: latest
8     update_cache: true
9   tags:
10     - nomad-inst-prerequisites
11
12 - name: Conf - Add Nomad Group
13   group:
14     name: "{{ nomad_group }}"
15     state: "{{ nomad_group_state }}"
16   when:
17     - nomad_manage_group | bool
18   tags:
19     - nomad-conf-user
20
21 - name: Conf - Add Nomad user
22   user:
23     name: "{{ nomad_user }}"
24     group: "{{ nomad_group }}"
25     groups: "{{ nomad_user_groups }}"
26     state: "{{ nomad_user_state }}"
27     system: true
28   when:
29     - nomad_manage_user | bool
30   tags:
31     - nomad-conf-user
32
33 - name: Inst - Download Nomad
34   get_url:
35     url: "{{ nomad_zip_url }}"
36     dest: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
37   tags:
38     - nomad-inst-package
39
40 - name: Inst - Unarchive Nomad
41   unarchive:
42     src: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
43     dest: "{{ nomad_inst_dir }}/"
44     creates: "{{ nomad_inst_dir }}/nomad"
45     remote_src: true
46   tags:
47     - nomad-inst-package
48
49 - name: Inst - Nomad
50   copy:
51     src: "{{ nomad_inst_dir }}/nomad"
52     dest: "{{ nomad_bin_dir }}"
53     owner: "{{ nomad_user }}"
54     group: "{{ nomad_group }}"
55     force: true
56     mode: 0755
57     remote_src: true
58   tags:
59     - nomad-inst-package
60
61 - name: Inst - Cleanup
62   file:
63     path: "{{ nomad_inst_dir }}/nomad"
64     state: "absent"
65   tags:
66     - nomad-inst-package
67
68 - name: Conf - Create Directories "{{ nomad_data_dir }}"
69   file:
70     dest: "{{ nomad_data_dir }}"
71     state: directory
72     owner: "{{ nomad_user }}"
73     group: "{{ nomad_group }}"
74   tags:
75     - nomad-conf
76
77 - name: Conf - Create Directories "{{ nomad_ssl_dir }}"
78   file:
79     dest: "{{ nomad_ssl_dir }}"
80     state: directory
81     owner: "{{ nomad_user }}"
82     group: "{{ nomad_group }}"
83   tags:
84     - nomad-conf
85
86 - name: Conf - Create Config Directory
87   file:
88     dest: "{{ nomad_config_dir }}"
89     state: directory
90     owner: "{{ nomad_user }}"
91     group: "{{ nomad_group }}"
92     mode: 0755
93   tags:
94     - nomad-conf
95
96 - name: Conf - Base Configuration
97   template:
98     src: base.hcl.j2
99     dest: "{{ nomad_config_dir }}/base.hcl"
100     owner: "{{ nomad_user }}"
101     group: "{{ nomad_group }}"
102     mode: 0644
103   tags:
104     - nomad-conf
105
106 - name: Conf - Server Configuration
107   template:
108     src: server.hcl.j2
109     dest: "{{ nomad_config_dir }}/server.hcl"
110     owner: "{{ nomad_user }}"
111     group: "{{ nomad_group }}"
112     mode: 0644
113   when:
114     - nomad_node_server | bool
115   tags:
116     - nomad-conf
117
118 - name: Conf - Client Configuration
119   template:
120     src: client.hcl.j2
121     dest: "{{ nomad_config_dir }}/client.hcl"
122     owner: "{{ nomad_user }}"
123     group: "{{ nomad_group }}"
124     mode: 0644
125   when:
126     - nomad_node_client | bool
127   tags:
128     - nomad-conf
129
130 - name: Conf - TLS Configuration
131   template:
132     src: tls.hcl.j2
133     dest: "{{ nomad_config_dir }}/tls.hcl"
134     owner: "{{ nomad_user }}"
135     group: "{{ nomad_group }}"
136     mode: 0644
137   tags:
138     - nomad-conf
139
140 - name: Conf - Custom Configuration
141   template:
142     src: custom.json.j2
143     dest: "{{ nomad_config_dir }}/custom.json"
144     owner: "{{ nomad_user }}"
145     group: "{{ nomad_group }}"
146     mode: 0644
147   when:
148     - nomad_config_custom is defined
149   tags:
150     - nomad-conf
151
152 - name: Conf - Copy Certificates And Keys
153   copy:
154     content: "{{ item.src }}"
155     dest: "{{ item.dest }}"
156     owner: "{{ nomad_user }}"
157     group: "{{ nomad_group }}"
158     mode: 0600
159   no_log: true
160   loop: "{{ nomad_certificates | flatten(levels=1) }}"
161   tags:
162     - nomad-conf
163
164 - name: Conf - System.d Script
165   template:
166     src: "nomad_systemd.service.j2"
167     dest: "/lib/systemd/system/nomad.service"
168     owner: "root"
169     group: "root"
170     mode: 0644
171 #  notify:
172 #    - "Restart Nomad"
173   tags:
174     - nomad-conf