Files
ansible/roles/nfs_server/tasks/main.yml
2025-12-02 00:45:25 +01:00

115 lines
3.5 KiB
YAML
Executable File

- name: Setup autofs
become: "{{ false if inventory_hostname == 'nas.home.lan' else true }}"
block:
- name: Include vault
ansible.builtin.include_vars:
file: jaydee.yml
- name: Install nfs-server
ansible.builtin.apt:
name:
- nfs-kernel-server
state: present
- name: Ensure nfsd thread count is set
community.general.ini_file:
path: /etc/nfs.conf
section: nfsd
option: threads
value: "1"
no_extra_spaces: true
mode: '0644'
when: inventory_hostname == 'rpi5.home.lan'
- name: Mount and bind a volume
ansible.posix.mount:
path: /srv/nfs/downloads
src: /media/m-server/downloads
opts: bind
state: mounted
fstype: none
when: inventory_hostname == 'm-server.home.lan'
- name: Mount and bind a volume
ansible.posix.mount:
path: /srv/nfs/backup
src: /mnt/raid/backup
opts: bind
state: mounted
fstype: none
when: inventory_hostname == 'amd.home.lan'
- name: Mount and bind a volume
ansible.posix.mount:
path: /srv/nfs/docker_data
src: /share/docker_data
opts: bind
state: mounted
fstype: none
when: inventory_hostname != 'amd.home.lan'
- name: Reconfigure nfs exports
ansible.builtin.lineinfile:
path: /etc/fstab
regexp: "^/share/{{ volume }} .*"
line: "/media/m-server/{{ volume }} /srv/nfs/{{ volume }} none bind 0 0"
when: inventory_hostname == 'm-server.home.lan'
loop_control:
loop_var: volume
loop:
- downloads
- music
- movies
- shows
- name: Reconfigure nfs exports
ansible.builtin.lineinfile:
path: /etc/fstab
regexp: "^/share/{{ volume }} .*"
line: "/share/{{ volume }} /srv/nfs/{{ volume }} none bind 0 0"
when: inventory_hostname == 'm-server.home.lan'
loop_control:
loop_var: volume
loop:
- docker_data
- name: Reconfigure nfs exports
ansible.builtin.lineinfile:
path: /etc/exports
regexp: "^/srv/nfs .*"
line: "/srv/nfs 192.168.77.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0) 192.168.80.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)"
- name: Reconfigure nfs exports
ansible.builtin.lineinfile:
path: /etc/exports
regexp: "^/srv/nfs/docker_data .*"
line: "/srv/nfs/docker_data 192.168.77.0/24(rw,sync,no_subtree_check) 192.168.80.0/24(rw,sync,no_subtree_check)"
when: inventory_hostname != 'amd.home.lan'
- name: Reconfigure nfs exports
ansible.builtin.lineinfile:
path: /etc/exports
regexp: "^/srv/nfs/{{ volume }} .*"
line: "/srv/nfs/{{ volume }} 192.168.77.0/24(rw,sync,no_subtree_check) 192.168.80.0/24(rw,sync,no_subtree_check)"
when: inventory_hostname == 'm-server.home.lan'
loop_control:
loop_var: volume
loop:
- downloads
- music
- movies
- shows
- name: Reconfigure nfs exports
ansible.builtin.lineinfile:
path: /etc/exports
regexp: "^/srv/nfs/backup .*"
line: "/srv/nfs/backup 192.168.77.0/24(rw,sync,no_subtree_check) 192.168.80.0/24(rw,sync,no_subtree_check)"
when: inventory_hostname == 'amd.home.lan'
- name: Restart nfs service
ansible.builtin.service:
name: nfs-server
state: restarted