--- # --- # NFS Server # --- - name: (nfs.yml) Ensure NFS utilities (server) are installed. apt: name: - nfs-common - nfs-kernel-server state: present when: - ansible_os_family == "Debian" - "groups['nfs_server']|string is search(inventory_hostname)" tags: - nfs-server - name: (nfs.yml) Ensure directories to export exist file: path: '{{ item.src.split(":")[1] }}' owner: root group: root mode: '0755' state: directory with_items: "{{ nfs_exports }}" loop_control: label: '{{ item.path }}' when: - "groups['nfs_server']|string is search(inventory_hostname)" tags: - nfs-server - name: (nfs.yml) Copy exports file. template: src: etc/exports.j2 dest: /etc/exports owner: root group: root mode: 0644 when: - "groups['nfs_server']|string is search(inventory_hostname)" notify: Reload nfs tags: - nfs-server - name: Enable service rpc-statd and ensure it is not masked systemd: name: rpc-statd enabled: yes masked: no when: - "groups['nfs_server']|string is search(inventory_hostname)" - name: Make sure service rpc-statd is running systemd: state: started name: rpc-statd when: - "groups['nfs_server']|string is search(inventory_hostname)" tags: - nfs-server # --- # NFS clients # --- - name: (nfs.yml) Ensure NFS utilities (clients) are installed. apt: pkg: nfs-common state: present when: - ansible_os_family == "Debian" - "groups['nfs_client']|string is search(inventory_hostname)" tags: - nfs-client - name: (nfs.yml) NFS Mount exports from nfs server mount: path: "{{ item.path }}" src: "{{ item.src }}" fstype: nfs opts: "{{ item.mount_opts }}" dump: "{{ item.dump | default(omit) }}" passno: "{{ item.passno | default(omit) }}" state: mounted loop: "{{ nfs_exports }}" loop_control: label: '{{ item.src }}' when: - "groups['nfs_client']|string is search(inventory_hostname)" tags: - nfs-client