--- - name: Check for backup log presence ansible.builtin.stat: path: "/var/log/rear/rear-{{ ansible_hostname }}.log" register: rear_backup_log_presence - name: End host if ReaR backup already exists when: - rear_backup_log_presence['stat']['exists'] | bool - not rear_force_backup | default(false) | bool block: - name: Validate ReaR backup completion ansible.builtin.command: cmd: "grep 'Finished running mkbackup workflow' /var/log/rear/rear-{{ ansible_hostname }}.log" register: validate_backup_log failed_when: validate_backup_log['rc'] not in [0,1] - name: End play if ReaR already exists ansible.builtin.meta: end_host when: - validate_backup_log['rc'] == 0 - name: Ensure nfs-utils and rear packages are present ansible.builtin.package: name: - nfs-utils - rear state: present - name: Check connectivity to NFS servers ansible.builtin.wait_for: host: "{{ item }}" port: 2049 timeout: 30 loop: "{{ nfs_np }}" ignore_errors: true register: active_nfs_servers - name: Define single NFS server ansible.builtin.set_fact: nfs_srv: "{{ active_nfs_servers | json_query(_nfs_query) | random }}" vars: _nfs_query: "results[?failed==`false`].item" - name: Create /etc/rear if it doesn't exist ansible.builtin.file: path: /etc/rear state: directory mode: "0755" owner: root group: root - name: Configure ReaR local.conf file ansible.builtin.include_role: name: rhc.rear.rear_local_cfg - name: ReaR Backup block: - name: Execute ReaR backup ansible.builtin.command: rear -d -v mkbackup changed_when: true register: rear_mkbackup - name: Update ReaR Grub menu item ansible.builtin.lineinfile: path: "{{ rear_grub_conf }}" regexp: '^menuentry ' line: "menuentry '{{ rear_grub_label }}' --class os {" state: present notify: Update Grub - name: ReaR backup success ansible.builtin.debug: msg: "ReaR backup has completed successfully." rescue: - name: ReaR backup failed ansible.builtin.fail: msg: "ReaR backup has failed. Please review the logs for any errors, and try again." - name: Verify ReaR configuration is present ansible.builtin.stat: path: /etc/rear register: rear_config_stat - name: Create backup of ReaR configuration files community.general.archive: path: /etc/rear dest: /root/etc-rear-backup.tar.gz format: gz force_archive: true mode: "0600" when: - rear_config_stat['stat']['exists'] | bool