feat(ansible): Migrate Ubuntu Jammy II
[csit.git] / fdio.infra.ansible / roles / consul / tasks / main.yaml
1 ---
2 # file: roles/consul/tasks/main.yaml
3
4 - name: Inst - Update Repositories Cache
5   apt:
6     update_cache: true
7   when:
8     - ansible_os_family == 'Debian'
9   tags:
10     - consul-inst-package
11
12 - name: Inst - Dependencies
13   apt:
14     name: "{{ packages | flatten(levels=1) }}"
15     state: "present"
16     cache_valid_time: 3600
17     install_recommends: false
18   when:
19     - ansible_os_family == 'Debian'
20   tags:
21     - consul-inst-dependencies
22
23 - name: Conf - Add Consul Group
24   group:
25     name: "{{ consul_group }}"
26     state: "{{ consul_group_state }}"
27   tags:
28     - consul-conf-user
29
30 - name: Conf - Add Consul user
31   user:
32     name: "{{ consul_user }}"
33     group: "{{ consul_group }}"
34     state: "{{ consul_user_state }}"
35     system: true
36   tags:
37     - consul-conf-user
38
39 - name: Inst - Download Consul
40   get_url:
41     url: "{{ consul_zip_url }}"
42     dest: "{{ consul_inst_dir }}/{{ consul_pkg }}"
43   tags:
44     - consul-inst-package
45
46 - name: Inst - Clean Consul
47   file:
48     path: "{{ consul_inst_dir }}/consul"
49     state: "absent"
50   when:
51     - consul_force_update | bool
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     remote_src: true
60   tags:
61     - consul-inst-package
62
63 - name: Inst - Consul
64   copy:
65     src: "{{ consul_inst_dir }}/consul"
66     dest: "{{ consul_bin_dir }}"
67     owner: "{{ consul_user }}"
68     group: "{{ consul_group }}"
69     force: true
70     mode: 0755
71     remote_src: true
72   tags:
73     - consul-inst-package
74
75 - name: Conf - Create Directories "{{ consul_data_dir }}"
76   file:
77     dest: "{{ consul_data_dir }}"
78     state: directory
79     owner: "{{ consul_user }}"
80     group: "{{ consul_group }}"
81   tags:
82     - consul-conf
83
84 - name: Conf - Create Directories "{{ consul_ssl_dir }}"
85   file:
86     dest: "{{ consul_ssl_dir }}"
87     state: directory
88     owner: "{{ consul_user }}"
89     group: "{{ consul_group }}"
90   tags:
91     - consul-conf
92
93 - name: Conf - Create Config Directory
94   file:
95     dest: "{{ consul_config_dir }}"
96     state: directory
97     owner: "{{ consul_user }}"
98     group: "{{ consul_group }}"
99     mode: 0755
100   tags:
101     - consul-conf
102
103 - name: Conf - Base Configuration
104   template:
105     src: base.hcl.j2
106     dest: "{{ consul_config_dir }}/base.hcl"
107     owner: "{{ consul_user }}"
108     group: "{{ consul_group }}"
109     mode: 0644
110   tags:
111     - consul-conf
112
113 - name: Conf - Ports Configuration
114   template:
115     src: ports.hcl.j2
116     dest: "{{ consul_config_dir }}/ports.hcl"
117     owner: "{{ consul_user }}"
118     group: "{{ consul_group }}"
119     mode: 0644
120   tags:
121     - consul-conf
122
123 - name: Conf - Telemetry Configuration
124   template:
125     src: telemetry.hcl.j2
126     dest: "{{ consul_config_dir }}/telemetry.hcl"
127     owner: "{{ consul_user }}"
128     group: "{{ consul_group }}"
129     mode: 0644
130   tags:
131     - consul-conf
132
133 - name: Conf - Services Configuration
134   template:
135     src: services.json.j2
136     dest: "{{ consul_config_dir }}/services.json"
137     owner: "{{ consul_user }}"
138     group: "{{ consul_group }}"
139     mode: 0644
140   when:
141     - consul_services
142   tags:
143     - consul-conf
144
145 - name: Conf - Copy Certificates And Keys
146   copy:
147     content: "{{ item.src }}"
148     dest: "{{ item.dest }}"
149     owner: "{{ consul_user }}"
150     group: "{{ consul_group }}"
151     mode: 0600
152   no_log: true
153   loop: "{{ consul_certificates | flatten(levels=1) }}"
154   when:
155     - consul_certificates is defined
156   tags:
157     - consul-conf
158
159 - name: Conf - Stop Systemd-resolved
160   systemd:
161     daemon_reload: true
162     enabled: false
163     name: "systemd-resolved"
164     state: "{{ systemd_resolved_state }}"
165   when:
166     - consul_service_mgr == "systemd"
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     - "Restart Nomad"
180   when:
181     - consul_service_mgr == "systemd"
182   tags:
183     - consul-conf
184
185 - name: Meta - Flush handlers
186   meta: flush_handlers