From 70dc11455a66c6417684fbbbbce066abedd10a63 Mon Sep 17 00:00:00 2001 From: Chris Hammer Date: Mon, 3 Mar 2025 18:03:55 -0500 Subject: [PATCH] New roles for better modularity --- roles/nfs_server_define/tasks/main.yml | 15 ++++++++ roles/nfs_server_define/vars/main.yml | 7 ++++ roles/rear_backup/tasks/main.yml | 48 ++++---------------------- roles/rear_backup/vars/main.yml | 7 ---- roles/rear_backup_check/tasks/main.yml | 21 +++++++++++ roles/rear_local_cfg/tasks/main.yml | 8 +++++ 6 files changed, 57 insertions(+), 49 deletions(-) create mode 100644 roles/nfs_server_define/tasks/main.yml create mode 100644 roles/nfs_server_define/vars/main.yml create mode 100644 roles/rear_backup_check/tasks/main.yml diff --git a/roles/nfs_server_define/tasks/main.yml b/roles/nfs_server_define/tasks/main.yml new file mode 100644 index 0000000..43c3f69 --- /dev/null +++ b/roles/nfs_server_define/tasks/main.yml @@ -0,0 +1,15 @@ +--- +- 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" diff --git a/roles/nfs_server_define/vars/main.yml b/roles/nfs_server_define/vars/main.yml new file mode 100644 index 0000000..1353adf --- /dev/null +++ b/roles/nfs_server_define/vars/main.yml @@ -0,0 +1,7 @@ +--- +nfs_np: + - 10.10.42.180 + - 10.10.42.228 + +nfs_prod: + - 10.10.42.180 diff --git a/roles/rear_backup/tasks/main.yml b/roles/rear_backup/tasks/main.yml index 21da2b7..0eb10c1 100644 --- a/roles/rear_backup/tasks/main.yml +++ b/roles/rear_backup/tasks/main.yml @@ -1,24 +1,7 @@ --- -- 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: Check for previous backup and end host if present + ansible.builtin.include_role: + name: rhc.rear.rear_backup_check - name: Ensure nfs-utils and rear packages are present ansible.builtin.package: @@ -27,28 +10,9 @@ - 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: Check and define NFS server for backup + ansible.builtin.include_role: + name: rhc.rear.nfs_server_define - name: Configure ReaR local.conf file ansible.builtin.include_role: diff --git a/roles/rear_backup/vars/main.yml b/roles/rear_backup/vars/main.yml index 0e97892..acfa4b1 100644 --- a/roles/rear_backup/vars/main.yml +++ b/roles/rear_backup/vars/main.yml @@ -1,11 +1,4 @@ --- -nfs_np: - - 10.10.42.180 - - 10.10.42.228 - -nfs_prod: - - 10.10.42.180 - rear_nfs_backup_share: /backups/standalone rear_grub_label: 'Relax-and-Recover *** RESTORES RHEL7 ***' diff --git a/roles/rear_backup_check/tasks/main.yml b/roles/rear_backup_check/tasks/main.yml new file mode 100644 index 0000000..e818458 --- /dev/null +++ b/roles/rear_backup_check/tasks/main.yml @@ -0,0 +1,21 @@ +--- +- 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 diff --git a/roles/rear_local_cfg/tasks/main.yml b/roles/rear_local_cfg/tasks/main.yml index d371d5d..1784dea 100644 --- a/roles/rear_local_cfg/tasks/main.yml +++ b/roles/rear_local_cfg/tasks/main.yml @@ -1,4 +1,12 @@ --- +- 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.template: src: local.conf.j2