From fe4b38e4b1e278ccf55191f346d0ffcf9bd4dd14 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Fri, 6 Mar 2026 19:12:59 +0900 Subject: [PATCH] Add NFS server role with installation, configuration, and restart tasks --- ansible/inventory.yaml | 6 ++--- ansible/playbooks/setup-nfs-debian.yaml | 14 ++++++++++ ansible/roles/nfs-server/defaults/main.yaml | 3 +++ ansible/roles/nfs-server/handlers/main.yaml | 6 +++++ ansible/roles/nfs-server/tasks/main.yaml | 26 +++++++++++++++++++ ansible/roles/nfs-server/templates/exports.j2 | 4 +++ 6 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 ansible/playbooks/setup-nfs-debian.yaml create mode 100644 ansible/roles/nfs-server/defaults/main.yaml create mode 100644 ansible/roles/nfs-server/handlers/main.yaml create mode 100644 ansible/roles/nfs-server/tasks/main.yaml create mode 100644 ansible/roles/nfs-server/templates/exports.j2 diff --git a/ansible/inventory.yaml b/ansible/inventory.yaml index b435bd9..831f65a 100644 --- a/ansible/inventory.yaml +++ b/ansible/inventory.yaml @@ -12,6 +12,6 @@ all: k3s_agents: hosts: - # debian will be added here in Phase 2 - # debian: - # ansible_host: 192.168.7.X + debian: + ansible_host: 192.168.7.183 + ansible_port: 430 diff --git a/ansible/playbooks/setup-nfs-debian.yaml b/ansible/playbooks/setup-nfs-debian.yaml new file mode 100644 index 0000000..7cd3735 --- /dev/null +++ b/ansible/playbooks/setup-nfs-debian.yaml @@ -0,0 +1,14 @@ +--- +# Run: ansible-playbook ansible/playbooks/setup-nfs-debian.yaml -K +# +# What this does: +# - Installs NFS server on Debian +# - Exports /mnt/storage to Minisforum (read-only) + +- name: Set up NFS server on Debian + hosts: debian + become: true + gather_facts: true + + roles: + - nfs-server \ No newline at end of file diff --git a/ansible/roles/nfs-server/defaults/main.yaml b/ansible/roles/nfs-server/defaults/main.yaml new file mode 100644 index 0000000..85ec6cd --- /dev/null +++ b/ansible/roles/nfs-server/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +nfs_export_path: /mnt/storage +nfs_allowed_ip: 192.168.7.77 \ No newline at end of file diff --git a/ansible/roles/nfs-server/handlers/main.yaml b/ansible/roles/nfs-server/handlers/main.yaml new file mode 100644 index 0000000..016bc80 --- /dev/null +++ b/ansible/roles/nfs-server/handlers/main.yaml @@ -0,0 +1,6 @@ +--- +- name: Restart NFS server + ansible.builtin.service: + name: nfs-kernel-server + state: restarted + become: true \ No newline at end of file diff --git a/ansible/roles/nfs-server/tasks/main.yaml b/ansible/roles/nfs-server/tasks/main.yaml new file mode 100644 index 0000000..7867071 --- /dev/null +++ b/ansible/roles/nfs-server/tasks/main.yaml @@ -0,0 +1,26 @@ +--- +- name: Install NFS server + ansible.builtin.apt: + name: + - nfs-kernel-server + - nfs-common + state: present + update_cache: true + become: true + +- name: Configure NFS exports + ansible.builtin.template: + src: exports.j2 + dest: /etc/exports + owner: root + group: root + mode: "0644" + become: true + notify: Restart NFS server + +- name: Ensure NFS server is running + ansible.builtin.service: + name: nfs-kernel-server + state: started + enabled: true + become: true \ No newline at end of file diff --git a/ansible/roles/nfs-server/templates/exports.j2 b/ansible/roles/nfs-server/templates/exports.j2 new file mode 100644 index 0000000..a553ad9 --- /dev/null +++ b/ansible/roles/nfs-server/templates/exports.j2 @@ -0,0 +1,4 @@ +# /etc/exports - managed by Ansible +# NFS exports for K3s cluster + +/mnt/storage 192.168.7.77(ro,sync,no_subtree_check,no_root_squash,fsid=1) \ No newline at end of file