From c2a3424b977de9436b29b20259c20a748904b802 Mon Sep 17 00:00:00 2001
From: Thomas Schneider <thomas@fsmpi.rwth-aachen.de>
Date: Sat, 7 Apr 2018 13:23:24 +0200
Subject: [PATCH] Use autofs iff it is configured for a host, else fstab

---
 nfs-client/handlers/main.yml |   1 +
 nfs-client/tasks/main.yml    | 102 +++++++++++++++++++++++------------
 2 files changed, 69 insertions(+), 34 deletions(-)

diff --git a/nfs-client/handlers/main.yml b/nfs-client/handlers/main.yml
index 64b0469..5f72bcd 100644
--- a/nfs-client/handlers/main.yml
+++ b/nfs-client/handlers/main.yml
@@ -3,6 +3,7 @@
 
 - name: restart autofs
   service: name=autofs state=restarted
+  when: automount
 
 - name: restart nfs-client
   service: name=nfs-client.target state=restarted
diff --git a/nfs-client/tasks/main.yml b/nfs-client/tasks/main.yml
index 3638b7b..80af0e9 100644
--- a/nfs-client/tasks/main.yml
+++ b/nfs-client/tasks/main.yml
@@ -91,40 +91,74 @@
     - nfs-client
     - service
 
-- name: ensure there is a base directory for automount
-  file: state=directory path=/net owner=root group=root mode=0755
-  notify:
-    - restart autofs
-  tags:
-    - nfs-client
-
-- name: ensure automounter is configured
-  copy: src=auto.master dest=/etc/auto.master owner=root group=root mode=0644
-  notify:
-    - restart autofs
-  tags:
-    - nfs-client
-    - config
-
-- name: ensure mounts from central storage are available
-  template: src=auto.nfs.j2 dest=/etc/auto.nfs owner=root group=root mode=0644
-  notify:
-    - restart autofs
-  tags:
-    - nfs-client
-    - config
-
-- name: ensure automounter is enabled
-  service: name=autofs state=running enabled=yes
-  tags:
-    - nfs-client
-    - service
-
-- name: ensure linking of netdirs
-  file: src="/net/{{ item.netdir }}" dest="/{{ item.dest }}" state=link force=yes
-  with_items: "{{ nfs_shares }}"
-  tags:
-    - nfs-client
+- name: Configure automount
+  when: automount
+  block:
+    - name: ensure there is a base directory for automount
+      file: state=directory path=/net owner=root group=root mode=0755
+      notify:
+        - restart autofs
+      tags:
+        - nfs-client
+
+    - name: ensure automounter is configured
+      copy: src=auto.master dest=/etc/auto.master owner=root group=root mode=0644
+      notify:
+        - restart autofs
+      tags:
+        - nfs-client
+        - config
+
+    - name: ensure mounts from central storage are available
+      template: src=auto.nfs.j2 dest=/etc/auto.nfs owner=root group=root mode=0644
+      notify:
+        - restart autofs
+      tags:
+        - nfs-client
+        - config
+
+    - name: ensure automounter is enabled
+      service: name=autofs state=running enabled=yes
+      tags:
+        - nfs-client
+        - service
+
+    - name: ensure linking of netdirs
+      file: src="/net/{{ item.netdir }}" dest="/{{ item.dest }}" state=link force=yes
+      with_items: "{{ nfs_shares }}"
+      tags:
+        - nfs-client
+
+- name: Configure fstab nfs mounts
+  when: not automount
+  block:
+    - name: Disable automounter
+      service:
+        name: autofs
+        state: stopped
+        enabled: no
+      tags:
+        - nfs-client
+        - service
+
+    - name: Ensure mountpoints are directories
+      file:
+        path: "/{{item.dest}}"
+        state: directory
+      with_items: "{{nfs_shares}}"
+      tags:
+        - nfs-client
+
+    - name: Create fstab entries
+      mount:
+        fstype: "nfs"
+        src: "{{item.src}}"
+        path: "/{{item.dest}}"
+        opts: "{{item.options}}"
+        state: mounted
+      with_items: "{{nfs_shares}}"
+      tags:
+        - nfs-client
 
 - name: configure default umask and other user related stuff
   copy: src=login.defs dest=/etc/login.defs owner=root group=root mode=0644
-- 
GitLab