--- # file: tasks/main.yaml - name: Inst - Update Repositories Cache ansible.builtin.apt: update_cache: true when: - ansible_os_family == 'Debian' tags: - nomad-inst-package - name: Inst - Dependencies ansible.builtin.apt: name: "{{ packages | flatten(levels=1) }}" state: "present" cache_valid_time: 3600 install_recommends: false when: - ansible_os_family == 'Debian' tags: - nomad-inst-dependencies - name: Conf - Add Nomad Group ansible.builtin.group: name: "{{ nomad_group }}" state: "{{ nomad_user_state }}" tags: - nomad-conf-user - name: Conf - Add Nomad user ansible.builtin.user: name: "{{ nomad_user }}" group: "{{ nomad_group }}" state: "{{ nomad_group_state }}" system: true tags: - nomad-conf-user - name: Inst - Download Nomad ansible.builtin.get_url: url: "{{ nomad_zip_url }}" dest: "{{ nomad_inst_dir }}/{{ nomad_pkg }}" tags: - nomad-inst-package - name: Inst - Clean Nomad ansible.builtin.file: path: "{{ nomad_inst_dir }}/nomad" state: "absent" when: - nomad_force_update | bool tags: - nomad-inst-package - name: Inst - Unarchive Nomad ansible.builtin.unarchive: src: "{{ nomad_inst_dir }}/{{ nomad_pkg }}" dest: "{{ nomad_inst_dir }}/" remote_src: true tags: - nomad-inst-package - name: Inst - Nomad ansible.builtin.copy: src: "{{ nomad_inst_dir }}/nomad" dest: "{{ nomad_bin_dir }}" owner: "{{ nomad_user }}" group: "{{ nomad_group }}" force: true mode: 0755 remote_src: true tags: - nomad-inst-package - name: Conf - Create Directories "{{ nomad_data_dir }}" ansible.builtin.file: dest: "{{ nomad_data_dir }}" state: directory owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0755 tags: - nomad-conf - name: Conf - Create Directories "{{ nomad_ssl_dir }}" ansible.builtin.file: dest: "{{ nomad_ssl_dir }}" state: directory owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0755 tags: - nomad-conf - name: Conf - Create Config Directory ansible.builtin.file: dest: "{{ nomad_config_dir }}" state: directory owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0755 tags: - nomad-conf - name: Conf - Base Configuration ansible.builtin.template: src: base.hcl.j2 dest: "{{ nomad_config_dir }}/base.hcl" owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0644 tags: - nomad-conf - name: Conf - Server Configuration ansible.builtin.template: src: server.hcl.j2 dest: "{{ nomad_config_dir }}/server.hcl" owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0644 when: - nomad_node_server | bool tags: - nomad-conf - name: Conf - Client Configuration ansible.builtin.template: src: client.hcl.j2 dest: "{{ nomad_config_dir }}/client.hcl" owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0644 when: - nomad_node_client | bool tags: - nomad-conf - name: Conf - TLS Configuration ansible.builtin.template: src: tls.hcl.j2 dest: "{{ nomad_config_dir }}/tls.hcl" owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0644 tags: - nomad-conf - name: Conf - Telemetry Configuration ansible.builtin.template: src: telemetry.hcl.j2 dest: "{{ nomad_config_dir }}/telemetry.hcl" owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0644 tags: - nomad-conf - name: Conf - Consul Configuration ansible.builtin.template: src: consul.hcl.j2 dest: "{{ nomad_config_dir }}/consul.hcl" owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0644 tags: - nomad-conf - name: Conf - Copy Certificates And Keys ansible.builtin.copy: content: "{{ item.src }}" dest: "{{ item.dest }}" owner: "{{ nomad_user }}" group: "{{ nomad_group }}" mode: 0600 no_log: true loop: "{{ nomad_certificates | flatten(levels=1) }}" when: - nomad_certificates is defined tags: - nomad-conf - name: Conf - Nomad CLI Environment Variables ansible.builtin.lineinfile: path: "/etc/profile.d/nomad.sh" line: "{{ item }}" create: true loop: - "export NOMAD_ADDR=https://nomad.service.consul:4646" - "export NOMAD_CACERT={{ nomad_ca_file }}" - "export NOMAD_CLIENT_CERT={{ nomad_cli_cert_file }}" - "export NOMAD_CLIENT_KEY={{ nomad_cli_key_file }}" tags: - nomad-conf - name: Conf - System.d Script ansible.builtin.template: src: "nomad_systemd.service.j2" dest: "/lib/systemd/system/nomad.service" owner: "root" group: "root" mode: 0644 notify: - "Restart Nomad" when: - nomad_service_mgr == "systemd" tags: - nomad-conf - name: Meta - Flush handlers ansible.builtin.meta: flush_handlers