--- # Copyright 2019 Red Hat, Inc. # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # "backup_and_restore" will search for and load any operating system variable file # found within the "vars/" path. If no OS files are found the task will skip. - name: Gather variables for each operating system include_vars: "{{ item }}" with_first_found: - skip: true files: - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml" - "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}.yml" - "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_version'].split('.')[0] }}.yml" - "{{ ansible_facts['os_family'] | lower }}.yml" tags: - always - name: Take this node out of pacemaker command: pcs cluster stop --request-timeout={{ tripleo_backup_and_restore_pcs_timeout }} when: - pacemaker_enabled - tripleo_backup_and_restore_enable_snapshots|bool tags: - bar_create_recover_image - name: Check if /boot/efi is mounted when the OS uses UEFI set_fact: boot_efi_mount: "{{ ansible_facts['mounts'] | selectattr('mount', 'equalto', '/boot/efi') | list | length > 0 }}" when: efi_dir.stat.exists tags: - bar_create_recover_image - name: Manually mount /boot/efi if it is not mounted shell: | set -o pipefail mkdir /boot/efi_stack mount /dev/{{ tripleo_backup_and_restore_boot_efi_mount }} /boot/efi_stack dd if=/dev/{{ tripleo_backup_and_restore_boot_mount }} of=/boot/{{ tripleo_backup_and_restore_boot_mount }} when: - efi_dir.stat.exists - not boot_efi_mount tags: - bar_create_recover_image - name: Get date and time to add to the backup prefix command: "date +\"{{ tripleo_backup_and_restore_date_argument }}\"" register: bar_timestamp when: tripleo_backup_and_restore_historical tags: - bar_create_recover_image - name: Modify on LOG_FILE on /etc/rear/local.conf lineinfile: path: /etc/rear/local.conf regexp: "^LOGFILE.*" line: LOGFILE="$LOG_DIR/rear-$HOSTNAME-{{ bar_timestamp.stdout }}.log" when: - tripleo_backup_and_restore_historical tags: - bar_create_recover_image - name: Configuring /etc/rear/local.conf replace: path: /etc/rear/local.conf regexp: "^{{ item }}.*" replace: "{{ item }}=$HOSTNAME-{{ bar_timestamp.stdout }}" loop: - ISO_PREFIX - BACKUP_PROG_ARCHIVE - OUTPUT_PREFIX_PXE tags: - bar_create_recover_image - name: Create the node backup command: rear {{ (tripleo_backup_and_restore_rear_simulate | bool) | ternary('-s ', '') }}-d -v mkbackup register: tripleo_backup_and_restore_rear_output when: tripleo_backup_and_restore_rear_output is undefined tags: - bar_create_recover_image - name: Display ReaR recovery image creation output debug: var: tripleo_backup_and_restore_rear_output tags: - bar_create_recover_image - name: Clean old backups shell: | set -o pipefail rm -rf /tmp/rear.* || true rm -rf /var/lib/rear/output/* failed_when: false args: warn: false tags: - bar_create_recover_image