diff --git a/tripleo_ansible/roles/backup_and_restore/tasks/run_backup.yml b/tripleo_ansible/roles/backup_and_restore/tasks/run_backup.yml index 976f74df4..ee07830cb 100644 --- a/tripleo_ansible/roles/backup_and_restore/tasks/run_backup.yml +++ b/tripleo_ansible/roles/backup_and_restore/tasks/run_backup.yml @@ -73,3 +73,14 @@ - tripleo_backup_and_restore_enable_snapshots|bool 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 diff --git a/tripleo_ansible/roles/backup_and_restore/tasks/setup_rear.yml b/tripleo_ansible/roles/backup_and_restore/tasks/setup_rear.yml index 0b7b7a5d4..69d868f94 100644 --- a/tripleo_ansible/roles/backup_and_restore/tasks/setup_rear.yml +++ b/tripleo_ansible/roles/backup_and_restore/tasks/setup_rear.yml @@ -109,3 +109,36 @@ backup: true tags: - bar_setup_rear + +- name: Load rear config + become: true + slurp: + src: /etc/rear/local.conf + register: rear_config + tags: + - bar_setup_rear + +- name: Extract OUTPUT_URL from rear config + set_fact: + output_url: "{{ rear_config.content | b64decode | regex_findall('OUTPUT_URL=(.+)') | first }}" + tags: + - bar_setup_rear + +- name: Check if this is a SFTP backup + set_fact: + sftp_backup: "{{ output_url is search ('sftp://') }}" + tags: + - bar_setup_rear + +- name: Extract the SFTP hostname + set_fact: + sftp_host: "{{ output_url | regex_search('(?<=@)(.*?)(?=/)') }}" + when: sftp_backup + tags: + - bar_setup_rear + +- name: Retrieve host ssh fingerprint + shell: "ssh-keyscan -H {{ sftp_host }} >> ~/.ssh/known_hosts" + when: sftp_backup + tags: + - bar_setup_rear