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