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