2025-03-03 20:15:51 -05:00

50 lines
1.5 KiB
YAML

---
- 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