2 # file: tasks/main.yaml
4 - name: Inst - Update Repositories Cache
8 - ansible_os_family == 'Debian'
12 - name: Inst - Dependencies
14 name: "{{ packages | flatten(levels=1) }}"
16 cache_valid_time: 3600
17 install_recommends: false
19 - ansible_os_family == 'Debian'
21 - nomad-inst-dependencies
23 - name: Conf - Add Nomad Group
24 ansible.builtin.group:
25 name: "{{ nomad_group }}"
26 state: "{{ nomad_user_state }}"
30 - name: Conf - Add Nomad user
32 name: "{{ nomad_user }}"
33 group: "{{ nomad_group }}"
34 state: "{{ nomad_group_state }}"
39 - name: Inst - Download Nomad
40 ansible.builtin.get_url:
41 url: "{{ nomad_zip_url }}"
42 dest: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
46 - name: Inst - Clean Nomad
48 path: "{{ nomad_inst_dir }}/nomad"
51 - nomad_force_update | bool
55 - name: Inst - Unarchive Nomad
56 ansible.builtin.unarchive:
57 src: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
58 dest: "{{ nomad_inst_dir }}/"
65 src: "{{ nomad_inst_dir }}/nomad"
66 dest: "{{ nomad_bin_dir }}"
67 owner: "{{ nomad_user }}"
68 group: "{{ nomad_group }}"
75 - name: Conf - Create Directories "{{ nomad_data_dir }}"
77 dest: "{{ nomad_data_dir }}"
79 owner: "{{ nomad_user }}"
80 group: "{{ nomad_group }}"
85 - name: Conf - Create Directories "{{ nomad_ssl_dir }}"
87 dest: "{{ nomad_ssl_dir }}"
89 owner: "{{ nomad_user }}"
90 group: "{{ nomad_group }}"
95 - name: Conf - Create Config Directory
97 dest: "{{ nomad_config_dir }}"
99 owner: "{{ nomad_user }}"
100 group: "{{ nomad_group }}"
105 - name: Conf - Base Configuration
106 ansible.builtin.template:
108 dest: "{{ nomad_config_dir }}/base.hcl"
109 owner: "{{ nomad_user }}"
110 group: "{{ nomad_group }}"
115 - name: Conf - Server Configuration
116 ansible.builtin.template:
118 dest: "{{ nomad_config_dir }}/server.hcl"
119 owner: "{{ nomad_user }}"
120 group: "{{ nomad_group }}"
123 - nomad_node_server | bool
127 - name: Conf - Client Configuration
128 ansible.builtin.template:
130 dest: "{{ nomad_config_dir }}/client.hcl"
131 owner: "{{ nomad_user }}"
132 group: "{{ nomad_group }}"
135 - nomad_node_client | bool
139 - name: Conf - TLS Configuration
140 ansible.builtin.template:
142 dest: "{{ nomad_config_dir }}/tls.hcl"
143 owner: "{{ nomad_user }}"
144 group: "{{ nomad_group }}"
149 - name: Conf - Telemetry Configuration
150 ansible.builtin.template:
151 src: telemetry.hcl.j2
152 dest: "{{ nomad_config_dir }}/telemetry.hcl"
153 owner: "{{ nomad_user }}"
154 group: "{{ nomad_group }}"
159 - name: Conf - Consul Configuration
160 ansible.builtin.template:
162 dest: "{{ nomad_config_dir }}/consul.hcl"
163 owner: "{{ nomad_user }}"
164 group: "{{ nomad_group }}"
169 - name: Conf - Copy Certificates And Keys
170 ansible.builtin.copy:
171 content: "{{ item.src }}"
172 dest: "{{ item.dest }}"
173 owner: "{{ nomad_user }}"
174 group: "{{ nomad_group }}"
177 loop: "{{ nomad_certificates | flatten(levels=1) }}"
179 - nomad_certificates is defined
183 - name: Conf - Nomad CLI Environment Variables
184 ansible.builtin.lineinfile:
185 path: "/etc/profile.d/nomad.sh"
189 - "export NOMAD_ADDR=http://nomad.service.consul:4646"
190 - "export NOMAD_CACERT={{ nomad_ca_file }}"
191 # - "export NOMAD_CLIENT_CERT={{ nomad_cli_cert_file }}"
192 # - "export NOMAD_CLIENT_KEY={{ nomad_cli_key_file }}"
196 - name: Conf - System.d Script
197 ansible.builtin.template:
198 src: "nomad_systemd.service.j2"
199 dest: "/lib/systemd/system/nomad.service"
206 - nomad_service_mgr == "systemd"
210 - name: Meta - Flush handlers
211 ansible.builtin.meta: flush_handlers