|
29 | 29 | tuned_enabled: true |
30 | 30 | tuned_started: true |
31 | 31 |
|
32 | | - nfs_client_mnt_point: "/mnt" |
33 | | - nfs_client_mnt_options: |
34 | | - nfs_client_mnt_state: mounted |
35 | | - nfs_configurations: |
36 | 32 | nfs_enable: |
37 | 33 | clients: false |
38 | 34 |
|
39 | | - # openhpc: no defaults required |
40 | | - |
41 | 35 | os_manila_mount_shares: [] |
42 | 36 | os_manila_mount_ceph_conf_path: /etc/ceph |
43 | 37 | os_manila_mount_state: mounted |
|
47 | 41 | - noatime |
48 | 42 | - _netdev # prevents mount blocking early boot before networking available |
49 | 43 | - rw |
50 | | - |
51 | | - basic_users_groups: [] |
52 | | - basic_users_manage_homedir: false # homedir must already exist on shared filesystem |
53 | | - basic_users_userdefaults: |
54 | | - state: present |
55 | | - create_home: "{{ basic_users_manage_homedir }}" |
56 | | - generate_ssh_key: "{{ basic_users_manage_homedir }}" |
57 | | - ssh_key_comment: "{{ item.name }}" |
58 | | - basic_users_users: [] |
| 44 | + - nodev |
| 45 | + - nosuid |
59 | 46 |
|
60 | 47 | tasks: |
61 | 48 | - block: |
|
96 | 83 | when: _mount_mnt_cluster.failed |
97 | 84 |
|
98 | 85 | - name: Check if hostvars exist |
| 86 | + become_user: slurm |
99 | 87 | stat: |
100 | 88 | path: "/mnt/cluster/hostvars/{{ ansible_hostname }}/hostvars.yml" |
101 | 89 | register: hostvars_stat |
|
109 | 97 | - meta: end_play |
110 | 98 | when: not hostvars_stat.stat.exists |
111 | 99 |
|
112 | | - - name: Load hostvars from NFS |
| 100 | + - name: Sync /mnt/cluster to /var/tmp |
| 101 | + become_user: slurm |
| 102 | + synchronize: |
| 103 | + src: "/mnt/cluster/" |
| 104 | + dest: "/var/tmp/cluster/" |
| 105 | + archive: yes |
| 106 | + recursive: yes |
| 107 | + |
| 108 | + - name: Unmount /mnt/cluster after sync |
| 109 | + mount: |
| 110 | + path: /mnt/cluster |
| 111 | + state: unmounted |
| 112 | + |
| 113 | + - name: Load hostvars |
113 | 114 | # this is higher priority than vars block = normal ansible's hostvars |
114 | 115 | include_vars: |
115 | | - file: "/mnt/cluster/hostvars/{{ ansible_hostname }}/hostvars.yml" # can't use inventory_hostname |
116 | | - |
117 | | - # TODO: should /mnt/cluster now be UNMOUNTED to avoid future hang-ups? |
| 116 | + file: "/var/tmp/cluster/hostvars/{{ ansible_hostname }}/hostvars.yml" |
118 | 117 |
|
119 | 118 | - name: Run chrony role |
120 | 119 | ansible.builtin.include_role: |
121 | 120 | name: mrlesmithjr.chrony |
122 | | - when: enable_chrony | bool |
| 121 | + tasks_from: config_chrony.yml |
| 122 | + vars: |
| 123 | + # workaround for set_facts.yml: |
| 124 | + chrony_config: /etc/chrony.conf |
| 125 | + chrony_service: chronyd |
| 126 | + when: enable_chrony |
123 | 127 |
|
124 | 128 | - name: Configure resolve.conf |
125 | 129 | block: |
|
149 | 153 |
|
150 | 154 | - name: Copy cluster /etc/hosts |
151 | 155 | copy: |
152 | | - src: /mnt/cluster/hosts |
| 156 | + src: /var/tmp/cluster/hosts |
153 | 157 | dest: /etc/hosts |
154 | 158 | owner: root |
155 | 159 | group: root |
|
160 | 164 | ansible.builtin.include_role: |
161 | 165 | name: cacerts |
162 | 166 | vars: |
163 | | - cacerts_cert_dir: "/mnt/cluster/cacerts" |
| 167 | + cacerts_cert_dir: "/var/tmp/cluster/cacerts" |
164 | 168 | when: enable_cacerts |
165 | 169 |
|
166 | 170 | - name: Configure sshd |
167 | 171 | ansible.builtin.include_role: |
168 | 172 | name: sshd |
169 | 173 | vars: |
170 | | - sshd_conf_src: "/mnt/cluster/hostconfig/{{ ansible_hostname }}/sshd.conf" |
| 174 | + sshd_conf_src: "/var/tmp/cluster/hostconfig/{{ ansible_hostname }}/sshd.conf" |
171 | 175 | when: enable_sshd |
172 | 176 |
|
173 | 177 | - name: Configure tuned |
|
179 | 183 | name: sssd |
180 | 184 | tasks_from: configure.yml |
181 | 185 | vars: |
182 | | - sssd_conf_src: "/mnt/cluster/hostconfig/{{ ansible_hostname }}/sssd.conf" |
| 186 | + sssd_conf_src: "/var/tmp/cluster/hostconfig/{{ ansible_hostname }}/sssd.conf" |
183 | 187 | when: enable_sssd |
184 | 188 |
|
185 | 189 | # NFS client mount |
186 | 190 | - name: If nfs-clients is present |
187 | | - include_tasks: tasks/nfs-clients.yml |
| 191 | + ansible.builtin.include_role: |
| 192 | + name: stackhpc.nfs |
| 193 | + tasks_from: nfs-clients.yml |
188 | 194 | when: |
189 | 195 | - enable_nfs |
190 | | - - nfs_enable.clients | bool or ('nfs_enable' in item and item.nfs_enable.clients | bool) |
| 196 | + - nfs_enable.clients | default(item.nfs_enable.clients) | bool |
191 | 197 | loop: "{{ nfs_configurations }}" |
192 | 198 |
|
193 | 199 | - name: Manila mounts |
194 | 200 | block: |
195 | 201 | - name: Read manila share info from nfs file |
196 | 202 | include_vars: |
197 | | - file: /mnt/cluster/manila_share_info.yml |
| 203 | + file: /var/tmp/cluster/manila_share_info.yml |
198 | 204 | no_log: true # contains secrets |
199 | 205 |
|
200 | 206 | - name: Ensure Ceph configuration directory exists |
|
269 | 275 | when: enable_lustre |
270 | 276 |
|
271 | 277 | - name: Basic users |
272 | | - block: |
273 | | - - name: Create groups |
274 | | - ansible.builtin.group: "{{ item }}" |
275 | | - loop: "{{ basic_users_groups }}" |
276 | | - |
277 | | - - name: Create users |
278 | | - user: "{{ basic_users_userdefaults | combine(item) | filter_user_params() }}" |
279 | | - loop: "{{ basic_users_users }}" |
280 | | - loop_control: |
281 | | - label: "{{ item.name }} [{{ item.state | default('present') }}]" |
282 | | - register: basic_users_info |
283 | | - |
284 | | - - name: Write sudo rules |
285 | | - blockinfile: |
286 | | - path: /etc/sudoers.d/80-{{ item.name}}-user |
287 | | - block: "{{ item.sudo }}" |
288 | | - create: true |
289 | | - loop: "{{ basic_users_users }}" |
290 | | - loop_control: |
291 | | - label: "{{ item.name }}" |
292 | | - when: "'sudo' in item" |
| 278 | + ansible.builtin.include_role: |
| 279 | + name: basic_users |
293 | 280 | when: enable_basic_users |
294 | 281 |
|
295 | 282 | - name: EESSI |
296 | 283 | block: |
297 | 284 | - name: Copy cvmfs config |
298 | 285 | copy: |
299 | | - src: /mnt/cluster/cvmfs/default.local |
| 286 | + src: /var/tmp/cluster/cvmfs/default.local |
300 | 287 | dest: /etc/cvmfs/default.local |
301 | 288 | owner: root |
302 | 289 | group: root |
|
0 commit comments