|
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