From 0ab1f2d078c6588f5120a394b23bf2fcaf121756 Mon Sep 17 00:00:00 2001 From: nd Date: Sat, 21 Nov 2020 00:22:02 +0100 Subject: [PATCH] generalize role to a generale mount role --- defaults/main.yml | 2 +- tasks/main.yml | 27 ++++----------------------- tasks/mount.yml | 25 +++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 24 deletions(-) create mode 100644 tasks/mount.yml diff --git a/defaults/main.yml b/defaults/main.yml index ca2ad3b..69870bf 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1 +1 @@ -nfs: {} +mounts: {} diff --git a/tasks/main.yml b/tasks/main.yml index a8419fc..36e3800 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,27 +1,8 @@ - name: install nfs client tools package: name: nfs-client + when: mounts.values()|selectattr("type", "equalto", "nfs")|list|length > 0 -- name: create mount points if they don't exist - with_dict: "{{ nfs }}" - file: - path: "{{ item.value.mountpoint }}" - state: directory - -- name: mount nfs shares - with_dict: "{{ nfs }}" - mount: - path: "{{ item.value.mountpoint }}" - src: "{{ item.value.source }}" - opts: "{{ item.value.options }}" - fstype: nfs - state: mounted - -- name: write nfs shares to fstab - with_dict: "{{ nfs }}" - mount: - path: "{{ item.value.mountpoint }}" - src: "{{ item.value.source }}" - opts: "{{ item.value.options }}" - fstype: nfs - state: present +- name: handle single mount + include_tasks: mount.yml + loop: "{{ mounts|dict2items }}" diff --git a/tasks/mount.yml b/tasks/mount.yml new file mode 100644 index 0000000..4e28acb --- /dev/null +++ b/tasks/mount.yml @@ -0,0 +1,25 @@ +- set_fact: + mount: "{{ {}|combine(item.value, { 'mountpoint': item.key }, recursive=True) }}" + +- name: "create mount point {{ mount.mountpoint }}" + file: + path: "{{ mount.mountpoint }}" + state: directory + +- name: "mount {{ mount.mountpoint }}" + mount: + path: "{{ mount.mountpoint }}" + src: "{{ mount.source }}" + opts: "{{ mount.options }}" + fstype: "{{ mount.type }}" + passno: "{{ mount.passno|d(0) }}" + state: mounted + +- name: "write mount {{ mount.mountpoint }} to fstab" + mount: + path: "{{ mount.mountpoint }}" + src: "{{ mount.source }}" + opts: "{{ mount.options }}" + fstype: "{{ mount.type }}" + passno: "{{ mount.passno|d(0) }}" + state: present