aboutsummaryrefslogtreecommitdiffstats
path: root/roles/nfsclient
diff options
context:
space:
mode:
Diffstat (limited to 'roles/nfsclient')
-rw-r--r--roles/nfsclient/defaults/main.yml5
-rw-r--r--roles/nfsclient/tasks/main.yml32
-rw-r--r--roles/nfsclient/tasks/os_alpine.yml10
-rw-r--r--roles/nfsclient/tasks/os_openbsd.yml0
4 files changed, 47 insertions, 0 deletions
diff --git a/roles/nfsclient/defaults/main.yml b/roles/nfsclient/defaults/main.yml
new file mode 100644
index 0000000..d0ca08e
--- /dev/null
+++ b/roles/nfsclient/defaults/main.yml
@@ -0,0 +1,5 @@
+nfsclient_dir: /data
+nfsclient_fstab_path: /etc/fstab
+nfsclient_server_dir: /data/nfs
+nfsclient_server_host: null
+nfsclient_server_ip: null
diff --git a/roles/nfsclient/tasks/main.yml b/roles/nfsclient/tasks/main.yml
new file mode 100644
index 0000000..7799a60
--- /dev/null
+++ b/roles/nfsclient/tasks/main.yml
@@ -0,0 +1,32 @@
+- name: translate server string to server dict
+ set_fact:
+ nfsclient_server_ip: "{{ hostvars[nfsclient_server].__ip.external }}"
+ when: not nfsclient_server_ip
+
+- name: include distribution specific prerequisites
+ include_tasks: "os_{{ ansible_distribution | lower }}.yml"
+ ignore_errors: true
+
+- name: create directory on client
+ file:
+ path: "{{ nfsclient_dir }}"
+ owner: 0
+ group: 0
+ mode: 0755
+ state: directory
+
+- name: cleanup fstab with previous nfs setup
+ lineinfile:
+ path: "{{ nfsclient_fstab_path }}"
+ regexp: ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:/.* {{ nfsclient_dir }} nfs
+ state: absent
+ register: result
+
+- name: complete fstab with nfs
+ lineinfile:
+ path: "{{ nfsclient_fstab_path }}"
+ line: "{{ nfsclient_server_ip }}:{{ nfsclient_server_dir }}/{{ inventory_hostname }} {{ nfsclient_dir }} nfs rw,nodev,nosuid 0 0"
+
+- name: reload fstab
+ shell: mount -a
+ ignore_errors: true
diff --git a/roles/nfsclient/tasks/os_alpine.yml b/roles/nfsclient/tasks/os_alpine.yml
new file mode 100644
index 0000000..62d8f70
--- /dev/null
+++ b/roles/nfsclient/tasks/os_alpine.yml
@@ -0,0 +1,10 @@
+- name: install nfs-utils
+ package:
+ name: nfs-utils
+ state: present
+
+- name: restart and enable nfsmount
+ service:
+ name: nfsmount
+ state: restarted
+ enabled: true
diff --git a/roles/nfsclient/tasks/os_openbsd.yml b/roles/nfsclient/tasks/os_openbsd.yml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/roles/nfsclient/tasks/os_openbsd.yml
remember that computers suck.