Funk-lab/ansible/roles/nfs_server/tasks/main.yml

83 lines
1.7 KiB
YAML

---
- name: Install nfs-utils and mdadm
ansible.builtin.dnf:
name:
- nfs-utils
- mdadm
state: present
# --- RAID persistence ---
- name: Persist mdadm array configuration
ansible.builtin.shell:
cmd: mdadm --detail --scan
register: mdadm_scan
changed_when: false
- name: Write /etc/mdadm.conf
ansible.builtin.copy:
content: "{{ mdadm_scan.stdout }}\n"
dest: /etc/mdadm.conf
mode: '0644'
notify: Rebuild initramfs
# --- RAID mount ---
- name: Create RAID mount point
ansible.builtin.file:
path: "{{ raid_mount }}"
state: directory
mode: '0755'
- name: Mount RAID5 array (fstab + immediate)
ansible.posix.mount:
src: "UUID={{ raid_uuid }}"
path: "{{ raid_mount }}"
fstype: "{{ raid_fstype }}"
opts: defaults,noatime,nodiratime
state: mounted
dump: 0
passno: 2
# --- Répertoires NFS ---
- name: Create NFS export directories
ansible.builtin.file:
path: "{{ item.path }}"
state: directory
mode: '0755'
owner: nobody
group: nobody
loop: "{{ nfs_exports }}"
# --- NFS server ---
- name: Deploy /etc/exports
ansible.builtin.template:
src: exports.j2
dest: /etc/exports
mode: '0644'
notify:
- Reload exports
- Restart nfs-server
- name: Enable and start nfs-server
ansible.builtin.systemd:
name: nfs-server
enabled: true
state: started
# --- Firewall ---
- name: Allow NFS through firewall (firewalld uniquement, pas nftables)
ansible.posix.firewalld:
service: "{{ item }}"
permanent: true
state: enabled
immediate: true
loop:
- nfs
- mountd
- rpc-bind
when: ansible_facts.services['firewalld.service'] is defined
and ansible_facts.services['firewalld.service']['state'] == 'running'