---
- name: Install required packages
  ansible.builtin.apt:
    state: present
    name:
      - nfs-kernel-server
      - nfs-common
      - parted

- name: Create a new ext4 primary partition
  community.general.parted:
    device: "{{ nfs_host_storage_device }}"
    number: 1
    state: present
    fs_type: ext4

- name: Ensure nfs mountpoints exist
  ansible.builtin.file:
    path: "{{ item.directory }}"
    state: directory
    owner: nobody
    group: nogroup
    mode: '0777'
  with_items: "{{ nfs_host_exports }}"

- name: Mount up device by label
  ansible.posix.mount:
    path: "{{ nfs_host_exports[0].directory }}"
    src: /dev/sdb1
    fstype: ext4
    state: present

- name: Put /etc/exports in place from template
  ansible.builtin.template:
    src: templates/exports.j2
    dest: "/etc/exports"
  notify: Reload nfs

- name: Ensure nfs is running.
  ansible.builtin.service: "name=nfs-kernel-server state=started enabled=yes"
  when: nfs_host_exports|length