f4e08259da77b775c8a2e4d5fc5af0cd1a8848c3
[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 - Base Configuration
100   template:
101     src: base.hcl.j2
102     dest: "{{ consul_config_dir }}/base.hcl"
103     owner: "{{ consul_user }}"
104     group: "{{ consul_group }}"
105     mode: 0644
106   tags:
107     - consul-conf
108
109 - name: Conf - Ports Configuration
110   template:
111     src: ports.hcl.j2
112     dest: "{{ consul_config_dir }}/ports.hcl"
113     owner: "{{ consul_user }}"
114     group: "{{ consul_group }}"
115     mode: 0644
116   tags:
117     - consul-conf
118
119 - name: Conf - Telemetry Configuration
120   template:
121     src: telemetry.hcl.j2
122     dest: "{{ consul_config_dir }}/telemetry.hcl"
123     owner: "{{ consul_user }}"
124     group: "{{ consul_group }}"
125     mode: 0644
126   tags:
127     - consul-conf
128
129 - name: Conf - Services Configuration
130   template:
131     src: services.json.j2
132     dest: "{{ consul_config_dir }}/services.json"
133     owner: "{{ consul_user }}"
134     group: "{{ consul_group }}"
135     mode: 0644
136   when:
137     - consul_services
138   tags:
139     - consul-conf
140
141 - name: Conf - Copy Certificates And Keys
142   copy:
143     content: "{{ item.src }}"
144     dest: "{{ item.dest }}"
145     owner: "{{ consul_user }}"
146     group: "{{ consul_group }}"
147     mode: 0600
148   no_log: true
149   loop: "{{ consul_certificates | flatten(levels=1) }}"
150   tags:
151     - consul-conf
152
153 - name: Conf - Stop Systemd-resolved
154   systemd:
155     daemon_reload: true
156     enabled: false
157     name: "systemd-resolved"
158     state: "{{ systemd_resolved_state }}"
159   tags:
160     - consul-conf
161
162 - name: Conf - System.d Script
163   template:
164     src: "consul_systemd.service.j2"
165     dest: "/lib/systemd/system/consul.service"
166     owner: "root"
167     group: "root"
168     mode: 0644
169   notify:
170     - "Restart Consul"
171     - "Restart Nomad"
172   tags:
173     - consul-conf
174
175 - meta: flush_handlers