Skip to content

Commit 536a31c

Browse files
committed
cope with root-squashed nfs clients
1 parent c50ca67 commit 536a31c

File tree

3 files changed

+49
-28
lines changed

3 files changed

+49
-28
lines changed

ansible/roles/cacerts/tasks/export.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
copy:
33
src: "{{ item }}"
44
dest: /exports/cluster/cacerts/
5-
owner: root
5+
owner: slurm
66
group: root
77
mode: 0644
88
with_fileglob:

ansible/roles/compute_init/files/compute-init.yml

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
tuned_started: true
3131

3232
nfs_client_mnt_point: "/mnt"
33-
nfs_client_mnt_options:
33+
nfs_client_mnt_options: "defaults,nosuid,nodev"
3434
nfs_client_mnt_state: mounted
3535
nfs_configurations:
3636
nfs_enable:
@@ -48,14 +48,12 @@
4848
- _netdev # prevents mount blocking early boot before networking available
4949
- rw
5050

51-
basic_users_groups: []
52-
basic_users_manage_homedir: false # homedir must already exist on shared filesystem
5351
basic_users_userdefaults:
5452
state: present
55-
create_home: "{{ basic_users_manage_homedir }}"
56-
generate_ssh_key: "{{ basic_users_manage_homedir }}"
53+
generate_ssh_key: true
5754
ssh_key_comment: "{{ item.name }}"
5855
basic_users_users: []
56+
basic_users_groups: []
5957

6058
tasks:
6159
- block:
@@ -96,6 +94,7 @@
9694
when: _mount_mnt_cluster.failed
9795

9896
- name: Check if hostvars exist
97+
become_user: slurm
9998
stat:
10099
path: "/mnt/cluster/hostvars/{{ ansible_hostname }}/hostvars.yml"
101100
register: hostvars_stat
@@ -109,17 +108,34 @@
109108
- meta: end_play
110109
when: not hostvars_stat.stat.exists
111110

112-
- name: Load hostvars from NFS
111+
- name: Sync /mnt/cluster to /tmp
112+
become_user: slurm
113+
synchronize:
114+
src: "/mnt/cluster/"
115+
dest: "/tmp/cluster/"
116+
archive: yes
117+
recursive: yes
118+
119+
- name: Unmount /mnt/cluster after sync
120+
become_user: slurm
121+
mount:
122+
path: /mnt/cluster
123+
state: unmounted
124+
125+
- name: Load hostvars
113126
# this is higher priority than vars block = normal ansible's hostvars
114127
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?
128+
file: "/tmp/cluster/hostvars/{{ ansible_hostname }}/hostvars.yml"
118129

119130
- name: Run chrony role
120131
ansible.builtin.include_role:
121132
name: mrlesmithjr.chrony
122-
when: enable_chrony | bool
133+
tasks_from: config_chrony.yml
134+
vars:
135+
# workaround for set_facts.yml:
136+
chrony_config: /etc/chrony.conf
137+
chrony_service: chronyd
138+
when: enable_chrony
123139

124140
- name: Configure resolve.conf
125141
block:
@@ -149,7 +165,7 @@
149165

150166
- name: Copy cluster /etc/hosts
151167
copy:
152-
src: /mnt/cluster/hosts
168+
src: /tmp/cluster/hosts
153169
dest: /etc/hosts
154170
owner: root
155171
group: root
@@ -160,14 +176,14 @@
160176
ansible.builtin.include_role:
161177
name: cacerts
162178
vars:
163-
cacerts_cert_dir: "/mnt/cluster/cacerts"
179+
cacerts_cert_dir: "/tmp/cluster/cacerts"
164180
when: enable_cacerts
165181

166182
- name: Configure sshd
167183
ansible.builtin.include_role:
168184
name: sshd
169185
vars:
170-
sshd_conf_src: "/mnt/cluster/hostconfig/{{ ansible_hostname }}/sshd.conf"
186+
sshd_conf_src: "/tmp/cluster/hostconfig/{{ ansible_hostname }}/sshd.conf"
171187
when: enable_sshd
172188

173189
- name: Configure tuned
@@ -179,7 +195,7 @@
179195
name: sssd
180196
tasks_from: configure.yml
181197
vars:
182-
sssd_conf_src: "/mnt/cluster/hostconfig/{{ ansible_hostname }}/sssd.conf"
198+
sssd_conf_src: "/tmp/cluster/hostconfig/{{ ansible_hostname }}/sssd.conf"
183199
when: enable_sssd
184200

185201
# NFS client mount
@@ -194,7 +210,7 @@
194210
block:
195211
- name: Read manila share info from nfs file
196212
include_vars:
197-
file: /mnt/cluster/manila_share_info.yml
213+
file: /tmp/cluster/manila_share_info.yml
198214
no_log: true # contains secrets
199215

200216
- name: Ensure Ceph configuration directory exists
@@ -275,28 +291,33 @@
275291
loop: "{{ basic_users_groups }}"
276292

277293
- name: Create users
278-
user: "{{ basic_users_userdefaults | combine(item) | filter_user_params() }}"
294+
user: "{{ basic_users_userdefaults | combine(item) | filter_user_params() | combine(_disable_homedir) }}"
279295
loop: "{{ basic_users_users }}"
280296
loop_control:
281-
label: "{{ item.name }} [{{ item.state | default('present') }}]"
282-
register: basic_users_info
297+
label: "{{ item.name }}"
298+
vars:
299+
_disable_homedir: # ensure this task doesn't touch $HOME
300+
create_home: false
301+
generate_ssh_key: false
283302

284303
- name: Write sudo rules
285304
blockinfile:
286-
path: /etc/sudoers.d/80-{{ item.name}}-user
305+
path: /etc/sudoers.d/80-{{ item.name }}-user
287306
block: "{{ item.sudo }}"
288307
create: true
289308
loop: "{{ basic_users_users }}"
290309
loop_control:
291310
label: "{{ item.name }}"
292-
when: "'sudo' in item"
311+
when:
312+
- item.state | default('present') == 'present'
313+
- "'sudo' in item"
293314
when: enable_basic_users
294315

295316
- name: EESSI
296317
block:
297318
- name: Copy cvmfs config
298319
copy:
299-
src: /mnt/cluster/cvmfs/default.local
320+
src: /tmp/cluster/cvmfs/default.local
300321
dest: /etc/cvmfs/default.local
301322
owner: root
302323
group: root

ansible/roles/compute_init/tasks/export.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
copy:
1313
src: /etc/hosts
1414
dest: /exports/cluster/hosts
15-
owner: root
15+
owner: slurm
1616
group: root
1717
mode: u=rw,go=
1818
remote_src: true
@@ -41,7 +41,7 @@
4141
copy:
4242
content: "{{ os_manila_mount_share_info_var | to_nice_yaml }}"
4343
dest: /exports/cluster/manila_share_info.yml
44-
owner: root
44+
owner: slurm
4545
group: root
4646
mode: u=rw,g=r
4747
run_once: true
@@ -55,7 +55,7 @@
5555
file:
5656
path: /exports/cluster/cvmfs
5757
state: directory
58-
owner: root
58+
owner: slurm
5959
group: root
6060
mode: 0755
6161
run_once: true
@@ -65,7 +65,7 @@
6565
copy:
6666
src: /etc/cvmfs/default.local
6767
dest: /exports/cluster/cvmfs/default.local
68-
owner: root
68+
owner: slurm
6969
group: root
7070
mode: 0644
7171
remote_src: true
@@ -82,9 +82,9 @@
8282
file:
8383
path: "/exports/cluster/hostconfig/{{ inventory_hostname }}/"
8484
state: directory
85-
owner: root
85+
owner: slurm
8686
group: root
87-
mode: u=rw,go=
87+
mode: u=rX,g=rwX,o=
8888
delegate_to: "{{ groups['control'] | first }}"
8989

9090
- name: Template sssd config

0 commit comments

Comments
 (0)