Initial gather_ipv4/exportfs build - testing

This commit is contained in:
Chris Hammer 2025-02-21 18:16:50 -05:00
parent 42f4a94685
commit 769a91ccd1
8 changed files with 111 additions and 16 deletions

13
playbooks/gather_ipv4.yml Normal file
View File

@ -0,0 +1,13 @@
---
- name: Gather IPv4 Addresses
hosts: all
gather_facts: true
become: false
tasks:
- name: Set stats
ansible.builtin.set_stats:
data:
ip_addresses: "{{ ansible_all_ipv4_addresses }}"
server_hostname: "{{ ansible_hostname }}"
aggregate: true

46
playbooks/nfs_export.yml Normal file
View File

@ -0,0 +1,46 @@
---
- name: Check SSH connectivity and create group of reachable hosts
hosts: rear_server
gather_facts: false
become: true
tasks:
- name: Check SSH connectivity
ansible.builtin.ping:
register: result
failed_when: false
- name: Clear unreachable host errors
ansible.builtin.meta: clear_host_errors
- name: Add reachable hosts to group
ansible.builtin.group_by:
key: reachable_hosts
when:
- result['ping'] is defined
- "'pong' in result['ping']"
- name: Update NFS exports on reachable servers
hosts: reachable_hosts
become: true
gather_facts: false
tasks:
- name: Grab the template name
ansible.builtin.set_stats:
data:
nfs_exports_template_name: "{{ tower_job_template_name | default('NA') }}"
aggregate: true
- name: Create IP list and add to NFS exports
when: not rear_backup_skip | default(false) | bool
block:
- name: Create list with IP addresses and hostnames
ansible.builtin.set_fact:
client_ips: "{{ ip_addresses | list | flatten }}"
namehost: "{{ server_hostname }}"
- name: Include NFS export role
ansible.builtin.include_role:
name: ../roles/nfs_export

View File

@ -1,5 +1,5 @@
--- ---
- name: Perform a ReaR backup - name: ReaR Backup Validation
hosts: all hosts: all
become: true become: true
gather_facts: true gather_facts: true
@ -44,7 +44,7 @@
rescue: rescue:
- name: No backup log found - name: No backup log found
ansible.builtin.debug: ansible.builtin.debug:
msg: "ReaR backup log could not be found to verify backup status. Please run the backup and try again." msg: "ReaR backup log could not be found or an error was encountered. Please run the backup and try again."
- name: OS Failure - name: OS Failure
ansible.builtin.debug: ansible.builtin.debug:

View File

@ -0,0 +1,3 @@
---
- name: Export share
ansible.builtin.command: "exportfs -rav"

View File

@ -0,0 +1,40 @@
---
- name: Check disk space on ReaR Backup filesystem for NFS servers
ansible.builtin.shell: |
set -o pipefail
df -BG {{ 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: Ensure share directory exists
ansible.builtin.file:
path: "{{ share }}"
state: directory
mode: "0777"
owner: root
group: root
- name: Add remote hosts to /etc/exports
ansible.builtin.lineinfile:
path: /etc/exports
state: present
line: "{{ share }} {{ _options }}"
loop: "{{ client_ips | list | flatten }}"
vars:
_options: "{{ item }}(fsid=0,rw,sync,no_subtree_check,crossmnt)"
notify: Export share

View File

@ -0,0 +1,2 @@
---
share: "/backups/standalone"

View File

@ -1,11 +1,2 @@
--- ---
rear_nfs_srv: "10.10.42.180/backups" rear_nfs_srv: "10.10.42.180"
rear_backup_success_file: /var/log/IPE/IPU/bigboot_success
# rear_backup_initrd_modules_exclude:
# - scsi_debug
# - falcon_lsm_serviceable
# - falcon_nf_netcontains
# - falcon_kal
# - falcon_lsm_pinned_16407

View File

@ -19,10 +19,10 @@
when: when:
- rear_force_backup | default(false) | bool - rear_force_backup | default(false) | bool
block: block:
- name: Execute ReaR backup # - name: Execute ReaR backup
ansible.builtin.command: rear -d -v mkbackup # ansible.builtin.command: rear -d -v mkbackup
changed_when: true # changed_when: true
register: rear_mkbackup # register: rear_mkbackup
- name: ReaR backup success - name: ReaR backup success
ansible.builtin.debug: ansible.builtin.debug: