--- - name: Ensure share directory exists ansible.builtin.file: path: "{{ rear_vars_nfs_share[rear_backup_workflow]['share'] }}" state: directory mode: "0777" owner: root group: root # We should use Ansible to determine disk space, not command/shell: - name: Debug mounts ansible.builtin.debug: var: ansible_facts['mounts'] - name: Check disk space on ReaR Backup filesystem for NFS servers ansible.builtin.shell: | set -o pipefail df -BG {{ rear_vars_nfs_share[rear_backup_workflow]['share'] }} | tail -1 | awk '{print substr($4, 1, length($4)-1)}' register: disk_space changed_when: false - name: Debug disk_space ansible.builtin.debug: var: disk_space - name: Fail job if less than 50GB space ansible.builtin.fail: msg: ReaR NFS server {{ inventory_hostname }} has less than 50GB of space on filesystem." when: (disk_space.stdout|int <= 50) - name: Validate IP address fact ansible.builtin.fail: msg: "Missing client_ips variable" when: - client_ips is not defined - name: Add remote hosts to /etc/exports ansible.builtin.lineinfile: path: /etc/exports state: present line: "{{ rear_vars_nfs_share[rear_backup_workflow]['share'] }} {{ _options }}" create: true mode: "0644" owner: root group: root loop: "{{ client_ips | list | flatten }}" vars: _options: "{{ item }}(fsid={{ rear_vars_nfs_share[rear_backup_workflow]['fsid'] }},rw,sync,no_subtree_check,crossmnt)" notify: Export share