Infra: AWS Update to Ubuntu 20.04
[csit.git] / resources / tools / testbed-setup / ansible / roles / consul / tasks / main.yaml
1 ---
2 # file: roles/consul/tasks/main.yaml
3
4 - name: Inst - Update Package Cache (APT)
5   apt:
6     update_cache: yes
7     cache_valid_time: 3600
8   when:
9     - ansible_distribution|lower == 'ubuntu'
10   tags:
11     - consul-inst-prerequisites
12
13 - name: Inst - Prerequisites
14   package:
15     name: "{{ packages | flatten(levels=1) }}"
16     state: latest
17   tags:
18     - consul-inst-prerequisites
19
20 - name: Conf - Add Consul Group
21   group:
22     name: "{{ consul_group }}"
23     state: "{{ consul_group_state }}"
24   when:
25     - consul_manage_group | bool
26   tags:
27     - consul-conf-user
28
29 - name: Conf - Add Consul user
30   user:
31     name: "{{ consul_user }}"
32     group: "{{ consul_group }}"
33     groups: "{{ consul_user_groups }}"
34     state: "{{ consul_user_state }}"
35     system: true
36   when:
37     - consul_manage_user | bool
38   tags:
39     - consul-conf-user
40
41 - name: Inst - Clean Consul
42   file:
43     path: "{{ consul_inst_dir }}/consul"
44     state: "absent"
45   tags:
46     - consul-inst-package
47
48 - name: Inst - Download Consul
49   get_url:
50     url: "{{ consul_zip_url }}"
51     dest: "{{ consul_inst_dir }}/{{ consul_pkg }}"
52   tags:
53     - consul-inst-package
54
55 - name: Inst - Unarchive Consul
56   unarchive:
57     src: "{{ consul_inst_dir }}/{{ consul_pkg }}"
58     dest: "{{ consul_inst_dir }}/"
59     creates: "{{ consul_inst_dir }}/consul"
60     remote_src: true
61   tags:
62     - consul-inst-package
63
64 - name: Inst - Consul
65   copy:
66     src: "{{ consul_inst_dir }}/consul"
67     dest: "{{ consul_bin_dir }}"
68     owner: "{{ consul_user }}"
69     group: "{{ consul_group }}"
70     force: true
71     mode: 0755
72     remote_src: true
73   tags:
74     - consul-inst-package
75
76 - name: Conf - Create Directories "{{ consul_data_dir }}"
77   file:
78     dest: "{{ consul_data_dir }}"
79     state: directory
80     owner: "{{ consul_user }}"
81     group: "{{ consul_group }}"
82   tags:
83     - consul-conf
84
85 - name: Conf - Create Directories "{{ consul_ssl_dir }}"
86   file:
87     dest: "{{ consul_ssl_dir }}"
88     state: directory
89     owner: "{{ consul_user }}"
90     group: "{{ consul_group }}"
91   tags:
92     - consul-conf
93
94 - name: Conf - Create Config Directory
95   file:
96     dest: "{{ consul_config_dir }}"
97     state: directory
98     owner: "{{ consul_user }}"
99     group: "{{ consul_group }}"
100     mode: 0755
101   tags:
102     - consul-conf
103
104 - name: Conf - Nomad integration Consul Configuration
105   template:
106     src: consul.hcl.j2
107     dest: "{{ nomad_config_dir }}/consul.hcl"
108     owner: "nomad"
109     group: "nomad"
110     mode: 0644
111   when:
112     - consul_nomad_integration | bool
113   tags:
114     - consul-conf
115
116 - name: Conf - Base Configuration
117   template:
118     src: base.hcl.j2
119     dest: "{{ consul_config_dir }}/base.hcl"
120     owner: "{{ consul_user }}"
121     group: "{{ consul_group }}"
122     mode: 0644
123   tags:
124     - consul-conf
125
126 - name: Conf - Ports Configuration
127   template:
128     src: ports.hcl.j2
129     dest: "{{ consul_config_dir }}/ports.hcl"
130     owner: "{{ consul_user }}"
131     group: "{{ consul_group }}"
132     mode: 0644
133   tags:
134     - consul-conf
135
136 - name: Conf - Telemetry Configuration
137   template:
138     src: telemetry.hcl.j2
139     dest: "{{ consul_config_dir }}/telemetry.hcl"
140     owner: "{{ consul_user }}"
141     group: "{{ consul_group }}"
142     mode: 0644
143   tags:
144     - consul-conf
145
146 - name: Conf - Services Configuration
147   template:
148     src: services.json.j2
149     dest: "{{ consul_config_dir }}/services.json"
150     owner: "{{ consul_user }}"
151     group: "{{ consul_group }}"
152     mode: 0644
153   when:
154     - consul_services
155   tags:
156     - consul-conf
157
158 - name: Conf - Copy Certificates And Keys
159   copy:
160     content: "{{ item.src }}"
161     dest: "{{ item.dest }}"
162     owner: "{{ consul_user }}"
163     group: "{{ consul_group }}"
164     mode: 0600
165   no_log: true
166   loop: "{{ consul_certificates | flatten(levels=1) }}"
167   tags:
168     - consul-conf
169
170 - name: Conf - System.d Script
171   template:
172     src: "consul_systemd.service.j2"
173     dest: "/lib/systemd/system/consul.service"
174     owner: "root"
175     group: "root"
176     mode: 0644
177 #  notify:
178 #    - "Restart Consul"
179 #    - "Stop Systemd-resolved"
180 #    - "Restart Nomad"
181   tags:
182     - consul-conf