From 42f4a94685546b23172ee0ec1a5b330139c6c5fa Mon Sep 17 00:00:00 2001 From: Chris Hammer Date: Wed, 5 Feb 2025 14:53:45 -0500 Subject: [PATCH] Slight tweaks --- playbooks/rear_backup.yml | 4 +-- playbooks/rear_backup_validate.yml | 51 +++++++++++++++++++++++++++++ roles/rear_backup/defaults/main.yml | 2 ++ roles/rear_backup/tasks/main.yml | 9 +++-- roles/say_hi/tasks/main.yml | 8 +++-- 5 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 playbooks/rear_backup_validate.yml diff --git a/playbooks/rear_backup.yml b/playbooks/rear_backup.yml index ef7116c..3818eb3 100644 --- a/playbooks/rear_backup.yml +++ b/playbooks/rear_backup.yml @@ -10,9 +10,9 @@ - name: "Debug survey: rear_force_backup" ansible.builtin.debug: var: rear_force_backup + when: + - rear_force_backup is defined - name: Include the backup role ansible.builtin.include_role: name: ../roles/rear_backup - when: - - rear_force_backup | default(false) | bool diff --git a/playbooks/rear_backup_validate.yml b/playbooks/rear_backup_validate.yml new file mode 100644 index 0000000..5e6e09d --- /dev/null +++ b/playbooks/rear_backup_validate.yml @@ -0,0 +1,51 @@ +--- +- name: Perform a ReaR backup + hosts: all + become: true + gather_facts: true + strategy: free + + vars: + rear_backup_success_path: "/var/log/IPE/IPU" + rear_backup_success_file: "{{ rear_backup_success_path }}/bigboot_success" + + tasks: + - name: Check for backup log presence + ansible.builtin.stat: + path: "/var/log/rear/rear-{{ ansible_hostname }}.log" + register: rear_backup_log_presence + + - name: ReaR Backup Validation + when: + - rear_backup_log_presence['stat']['exists'] | bool + block: + - name: Validate ReaR backup completion + ansible.builtin.command: + cmd: "grep 'Finished running mkbackup workflow' /var/log/rear/rear-{{ ansible_hostname }}.log" + changed_when: false + register: validate_backup_log + + - name: Debug validate_backup_log + ansible.builtin.debug: + var: validate_backup_log + verbosity: 1 + + - name: Create log file directory if not present + ansible.builtin.file: + path: "{{ rear_backup_success_path }}" + state: directory + mode: "0755" + + - name: Create Bigboot backup success file + ansible.builtin.copy: + dest: "{{ rear_backup_success_file }}" + content: "success" + mode: "0644" + rescue: + - name: No backup log found + ansible.builtin.debug: + msg: "ReaR backup log could not be found to verify backup status. Please run the backup and try again." + + - name: OS Failure + ansible.builtin.debug: + msg: "OS failure: Expecting version {{ ansible_distribution_major_version }}, got {{ ansible_distribution_major_version | int + 1 }}" diff --git a/roles/rear_backup/defaults/main.yml b/roles/rear_backup/defaults/main.yml index 20adcba..148e650 100644 --- a/roles/rear_backup/defaults/main.yml +++ b/roles/rear_backup/defaults/main.yml @@ -1,6 +1,8 @@ --- rear_nfs_srv: "10.10.42.180/backups" +rear_backup_success_file: /var/log/IPE/IPU/bigboot_success + # rear_backup_initrd_modules_exclude: # - scsi_debug # - falcon_lsm_serviceable diff --git a/roles/rear_backup/tasks/main.yml b/roles/rear_backup/tasks/main.yml index d7f9017..81c0543 100644 --- a/roles/rear_backup/tasks/main.yml +++ b/roles/rear_backup/tasks/main.yml @@ -16,16 +16,19 @@ mode: "0600" - name: ReaR Backup + when: + - rear_force_backup | default(false) | bool block: - name: Execute ReaR backup ansible.builtin.command: rear -d -v mkbackup changed_when: true register: rear_mkbackup + + - name: ReaR backup success + ansible.builtin.debug: + msg: "ReaR backup has completed successfully." rescue: - name: ReaR backup failed ansible.builtin.debug: msg: "ReaR backup has failed. Please review the logs for any errors, and try again." -- name: ReaR backup success - ansible.builtin.debug: - msg: "ReaR backup has completed successfully." diff --git a/roles/say_hi/tasks/main.yml b/roles/say_hi/tasks/main.yml index fb27777..2299a5b 100644 --- a/roles/say_hi/tasks/main.yml +++ b/roles/say_hi/tasks/main.yml @@ -17,10 +17,14 @@ - name: Debug roles_path ansible.builtin.debug: - var: roles_path + var: role_path + +# - name: Include rear_restore role for fun +# ansible.builtin.import_role: +# name: ../roles/rear_restore - name: Include rear_restore role for fun ansible.builtin.import_role: - name: ../roles/rear_restore + name: "{{ role_path }}/../rear_restore" ...