2025-03-03 15:38:12 -05:00

102 lines
2.7 KiB
YAML

---
- 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: Debug ansible_parent_role_paths
ansible.builtin.debug:
var: ansible_parent_role_paths
- name: Debug role_path
ansible.builtin.debug:
var: role_path
- 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