Skip to content

Commit

Permalink
require bind mounts from mergerfs for nfs root before nfs service starts
Browse files Browse the repository at this point in the history
  • Loading branch information
brettinternet committed Jun 24, 2024
1 parent 15c262d commit 84c8b62
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 3 deletions.
2 changes: 2 additions & 0 deletions ansible/inventory/hosts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ linux:
cockpit: true
snapraid: true
proxmox__acpi_lax: true
nfs__required_services:
- srv-nfs-media.mount
nfs__exports:
- /srv/nfs *(rw,fsid=0,no_subtree_check,all_squash)
- /srv/nfs/media *(rw,fsid=10,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
Expand Down
1 change: 1 addition & 0 deletions ansible/roles/nfs/defaults/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ nfs__supported_distributions:

nfs__root_dir: /srv/nfs
nfs__exports: []
nfs__required_services: []
8 changes: 6 additions & 2 deletions ansible/roles/nfs/handlers/main.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
---
- name: reload nfs
ansible.builtin.command: 'exportfs -ra'
- name: Reload nfs
ansible.builtin.command: "exportfs -ra"

- name: Reload systemd
ansible.builtin.systemd:
daemon_reload: true
23 changes: 22 additions & 1 deletion ansible/roles/nfs/tasks/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,31 @@
owner: root
group: root
mode: "0644"
notify: reload nfs
notify: Reload nfs

- name: Enable and start NFS server
ansible.builtin.service:
name: "{{ nfs__server_daemon }}"
state: started
enabled: true

- name: Make services required for NFS
when: nfs__required_services | length
block:
- name: Create NFS systemd override directory
ansible.builtin.file:
path: /etc/systemd/system/nfs-server.service.d
state: directory
owner: root
group: root
mode: "0755"

- name: Create NFS systemd override
ansible.builtin.copy:
# /srv/nfs/media would become `srv-nfs-media.mount`
content: "Requires=network.target proc-fs-nfsd.mount {{ nfs__required_services.strip().join(' ') }}"
dest: /etc/systemd/system/nfs-server.service.d/override.conf
owner: root
group: root
mode: "0644"
notify: Reload systemd

0 comments on commit 84c8b62

Please sign in to comment.