2025-03-05 16:44:31 -05:00

50 lines
1.5 KiB
YAML

---
- name: Ensure share directory exists
ansible.builtin.file:
path: "{{ rear_vars_nfs_base }}/{{ rear_backup_workflow }}"
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_base }}/{{ rear_backup_workflow }} | 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_base }}/{{ rear_backup_workflow }} {{ _options }}"
create: true
mode: "0644"
owner: root
group: root
loop: "{{ client_ips | list | flatten }}"
vars:
_options: "{{ item }}(fsid={{ rear_vars_nfs_fsid[rear_backup_workflow] }},rw,sync,no_subtree_check,crossmnt)"
notify: Export share