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