Infra: Backend infra upgrade
[csit.git] / fdio.infra.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: true
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   tags:
25     - consul-conf-user
26
27 - name: Conf - Add Consul user
28   user:
29     name: "{{ consul_user }}"
30     group: "{{ consul_group }}"
31     state: "{{ consul_user_state }}"
32     system: true
33   tags:
34     - consul-conf-user
35
36 - name: Inst - Clean Consul
37   file:
38     path: "{{ consul_inst_dir }}/consul"
39     state: "absent"
40   tags:
41     - consul-inst-package
42
43 - name: Inst - Download Consul
44   get_url:
45     url: "{{ consul_zip_url }}"
46     dest: "{{ consul_inst_dir }}/{{ consul_pkg }}"
47   tags:
48     - consul-inst-package
49
50 - name: Inst - Unarchive Consul
51   unarchive:
52     src: "{{ consul_inst_dir }}/{{ consul_pkg }}"
53     dest: "{{ consul_inst_dir }}/"
54     creates: "{{ consul_inst_dir }}/consul"
55     remote_src: true
56   tags:
57     - consul-inst-package
58
59 - name: Inst - Consul
60   copy:
61     src: "{{ consul_inst_dir }}/consul"
62     dest: "{{ consul_bin_dir }}"
63     owner: "{{ consul_user }}"
64     group: "{{ consul_group }}"
65     force: true
66     mode: 0755
67     remote_src: true
68   tags:
69     - consul-inst-package
70
71 - name: Conf - Create Directories "{{ consul_data_dir }}"
72   file:
73     dest: "{{ consul_data_dir }}"
74     state: directory
75     owner: "{{ consul_user }}"
76     group: "{{ consul_group }}"
77   tags:
78     - consul-conf
79
80 - name: Conf - Create Directories "{{ consul_ssl_dir }}"
81   file:
82     dest: "{{ consul_ssl_dir }}"
83     state: directory
84     owner: "{{ consul_user }}"
85     group: "{{ consul_group }}"
86   tags:
87     - consul-conf
88
89 - name: Conf - Create Config Directory
90   file:
91     dest: "{{ consul_config_dir }}"
92     state: directory
93     owner: "{{ consul_user }}"
94     group: "{{ consul_group }}"
95     mode: 0755
96   tags:
97     - consul-conf
98
99 - name: Conf - Nomad integration Consul Configuration
100   template:
101     src: consul.hcl.j2
102     dest: "{{ nomad_config_dir }}/consul.hcl"
103     owner: "nomad"
104     group: "nomad"
105     mode: 0644
106   when:
107     - consul_nomad_integration | bool
108   tags:
109     - consul-conf
110
111 - name: Conf - Base Configuration
112   template:
113     src: base.hcl.j2
114     dest: "{{ consul_config_dir }}/base.hcl"
115     owner: "{{ consul_user }}"
116     group: "{{ consul_group }}"
117     mode: 0644
118   tags:
119     - consul-conf
120
121 - name: Conf - Ports Configuration
122   template:
123     src: ports.hcl.j2
124     dest: "{{ consul_config_dir }}/ports.hcl"
125     owner: "{{ consul_user }}"
126     group: "{{ consul_group }}"
127     mode: 0644
128   tags:
129     - consul-conf
130
131 - name: Conf - Telemetry Configuration
132   template:
133     src: telemetry.hcl.j2
134     dest: "{{ consul_config_dir }}/telemetry.hcl"
135     owner: "{{ consul_user }}"
136     group: "{{ consul_group }}"
137     mode: 0644
138   tags:
139     - consul-conf
140
141 - name: Conf - Services Configuration
142   template:
143     src: services.json.j2
144     dest: "{{ consul_config_dir }}/services.json"
145     owner: "{{ consul_user }}"
146     group: "{{ consul_group }}"
147     mode: 0644
148   when:
149     - consul_services
150   tags:
151     - consul-conf
152
153 - name: Conf - Copy Certificates And Keys
154   copy:
155     content: "{{ item.src }}"
156     dest: "{{ item.dest }}"
157     owner: "{{ consul_user }}"
158     group: "{{ consul_group }}"
159     mode: 0600
160   no_log: true
161   loop: "{{ consul_certificates | flatten(levels=1) }}"
162   tags:
163     - consul-conf
164
165 - name: Conf - Stop Systemd-resolved
166   systemd:
167     daemon_reload: true
168     enabled: false
169     name: "systemd-resolved"
170     state: "{{ systemd_resolved_state }}"
171   tags:
172     - consul-conf
173
174 - name: Conf - System.d Script
175   template:
176     src: "consul_systemd.service.j2"
177     dest: "/lib/systemd/system/consul.service"
178     owner: "root"
179     group: "root"
180     mode: 0644
181   notify:
182     - "Restart Consul"
183     - "Restart Nomad"
184   tags:
185     - consul-conf
186
187 - meta: flush_handlers