- name: "Add GlusterFS Repo Key"
  apt_key:
    url: https://download.gluster.org/pub/gluster/glusterfs/5/rsa.pub
    state: present

- name: "Add GlusterFS official repository"
  apt_repository:
    repo: "deb [arch=amd64] https://download.gluster.org/pub/gluster/glusterfs/5/LATEST/Debian/buster/amd64/apt buster main"
    state: present
    filename: gluster

- name: "Install GlusterFS"
  apt:
    name:
      - glusterfs-server
      - glusterfs-client
    state: present

- name: "Ensure Gluster Daemon started and enabled"
  service:
    name: glusterd
    enabled: yes
    state: started

- name: "Create directory for GlusterFS bricks"
  file: path=/mnt/storage/glusterfs/brick1 recurse=yes state=directory

- name: "Create GlusterFS volumes"
  gluster_volume:
    state: present
    name: donnees
    bricks: /mnt/storage/glusterfs/brick1/g1
    #rebalance: yes
    redundancies: 1
    disperses: 3
    #replicas: 3
    force: yes
    options:
      client.event-threads: "8"
      server.event-threads: "8"
      performance.stat-prefetch: "on"
      nfs.disable: "on"
      features.cache-invalidation: "on"
      performance.client-io-threads: "on"
      config.transport: tcp
      performance.quick-read: "on"
      performance.io-cache: "on"
      nfs.export-volumes: "off"
      cluster.lookup-optimize: "on"

    cluster: "{% for selected_host in groups['cluster_nodes'] %}{{ hostvars[selected_host]['private_ip'] }}{{ ',' if not loop.last else '' }}{% endfor %}"
  run_once: true

- name: "Create mountpoint"
  file: path=/mnt/glusterfs recurse=yes state=directory

- name: "Flush handlers (umount glusterfs and restart ganesha)"
  meta: flush_handlers

- name: "Add fstab entry"
  tags: gluster-fstab
  mount:
    path: /mnt/glusterfs
    src: "{{ private_ip }}:/donnees"
    fstype: glusterfs
    opts: "defaults,_netdev,noauto,x-systemd.automount"
    state: present

- name: Mount everything
  command: mount -a
  args:
    warn: no
