Revert "fix(jobspec): Delete ipsec nfv density tests"
[csit.git] / fdio.infra.ansible / roles / nomad / tasks / main.yaml
1 ---
2 # file: tasks/main.yaml
3
4 - name: Update Repositories Cache
5   ansible.builtin.apt:
6     update_cache: true
7   when:
8     - ansible_os_family == 'Debian'
9   tags:
10     - nomad-inst-package
11
12 - name: Dependencies
13   ansible.builtin.apt:
14     name: "{{ packages | flatten(levels=1) }}"
15     state: "present"
16     cache_valid_time: 3600
17     install_recommends: false
18   when:
19     - ansible_os_family == 'Debian'
20   tags:
21     - nomad-inst-dependencies
22
23 - name: Add Nomad Group
24   ansible.builtin.group:
25     name: "{{ nomad_group }}"
26     state: "present"
27   tags:
28     - nomad-conf-user
29
30 - name: Add Nomad user
31   ansible.builtin.user:
32     name: "{{ nomad_user }}"
33     group: "{{ nomad_group }}"
34     state: "present"
35     system: true
36   tags:
37     - nomad-conf-user
38
39 - name: Download Nomad
40   ansible.builtin.get_url:
41     url: "{{ nomad_zip_url }}"
42     dest: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
43     mode: 0644
44   tags:
45     - nomad-inst-package
46
47 - name: Clean Nomad
48   ansible.builtin.file:
49     path: "{{ nomad_inst_dir }}/nomad"
50     state: "absent"
51   when:
52     - nomad_force_update | bool
53   tags:
54     - nomad-inst-package
55
56 - name: Unarchive Nomad
57   ansible.builtin.unarchive:
58     src: "{{ nomad_inst_dir }}/{{ nomad_pkg }}"
59     dest: "{{ nomad_inst_dir }}/"
60     remote_src: true
61   tags:
62     - nomad-inst-package
63
64 - name: Nomad
65   ansible.builtin.copy:
66     src: "{{ nomad_inst_dir }}/nomad"
67     dest: "{{ nomad_bin_dir }}"
68     owner: "{{ nomad_user }}"
69     group: "{{ nomad_group }}"
70     force: true
71     mode: 0755
72     remote_src: true
73   tags:
74     - nomad-inst-package
75
76 - name: Create Directories
77   ansible.builtin.file:
78     dest: "{{ item }}"
79     state: "directory"
80     owner: "{{ nomad_user }}"
81     group: "{{ nomad_group }}"
82     mode: 0755
83   with_items:
84     - "{{ nomad_data_dir }}"
85     - "{{ nomad_config_dir }}"
86     - "{{ nomad_ssl_dir }}"
87   tags:
88     - nomad-conf
89
90 - name: Base Configuration
91   ansible.builtin.template:
92     src: "{{ item }}.hcl.j2"
93     dest: "{{ nomad_config_dir }}/{{ item }}.hcl"
94     owner: "{{ nomad_user }}"
95     group: "{{ nomad_group }}"
96     mode: 0644
97   with_items:
98     - "base"
99     - "consul"
100     - "client"
101     - "server"
102     - "telemetry"
103     - "tls"
104     - "vault"
105   tags:
106     - nomad-conf
107
108 - name: Conf - Copy Certificates And Keys
109   ansible.builtin.copy:
110     content: "{{ item.src }}"
111     dest: "{{ item.dest }}"
112     owner: "{{ nomad_user }}"
113     group: "{{ nomad_group }}"
114     mode: 0600
115   no_log: true
116   loop: "{{ nomad_certificates | flatten(levels=1) }}"
117   when:
118     - nomad_certificates is defined
119   tags:
120     - nomad-conf
121
122 - name: Nomad CLI Environment Variables
123   ansible.builtin.lineinfile:
124     path: "/etc/profile.d/nomad.sh"
125     line: "{{ item }}"
126     mode: 0644
127     create: true
128   loop:
129     - "export NOMAD_ADDR=https://nomad-server.service.consul:4646"
130     - "export NOMAD_CACERT={{ nomad_tls_ca_file }}"
131     - "export NOMAD_CLIENT_CERT={{ nomad_tls_cli_cert_file }}"
132     - "export NOMAD_CLIENT_KEY={{ nomad_tls_cli_key_file }}"
133   tags:
134     - nomad-conf
135
136 - name: System.d Script
137   ansible.builtin.template:
138     src: "nomad_systemd.service.j2"
139     dest: "/lib/systemd/system/nomad.service"
140     owner: "root"
141     group: "root"
142     mode: 0644
143   notify:
144     - "Restart Nomad"
145   when:
146     - nomad_service_mgr == "systemd"
147   tags:
148     - nomad-conf
149
150 - name: Meta - Flush handlers
151   ansible.builtin.meta: flush_handlers