diff --git a/tripleo_ansible/roles/backup_and_restore/tasks/ceph_authentication.yml b/tripleo_ansible/roles/backup_and_restore/tasks/ceph_authentication.yml index 252017208..2fadd55cc 100644 --- a/tripleo_ansible/roles/backup_and_restore/tasks/ceph_authentication.yml +++ b/tripleo_ansible/roles/backup_and_restore/tasks/ceph_authentication.yml @@ -32,6 +32,12 @@ tags: - always +- name: Unpause ceph mon container if paused + command: "{{ tripleo_container_cli }} unpause ceph-mon-{{ ansible_facts['hostname'] }}" + failed_when: false + tags: + - bar_create_recover_image + - name: Export ceph authentication shell: | set -o pipefail diff --git a/tripleo_ansible/roles/backup_and_restore/tasks/db_backup.yml b/tripleo_ansible/roles/backup_and_restore/tasks/db_backup.yml index 1f85cdab4..55f6d5e77 100644 --- a/tripleo_ansible/roles/backup_and_restore/tasks/db_backup.yml +++ b/tripleo_ansible/roles/backup_and_restore/tasks/db_backup.yml @@ -48,6 +48,29 @@ tags: - bar_create_recover_image +- name: Enable pacemaker if it is stopped + command: pcs cluster start --all + when: + - enabled_galera + - tripleo_backup_and_restore_service_manager|bool + run_once: true + tags: + - bar_create_recover_image + +- name: Wait until pacemaker has Galera up&running + shell: | + set -o pipefail + ss -tunlp | grep ":3306 " | sed -e 's/.*\///' + register: mysql_result + retries: 300 + until: mysql_result is search('mysqld') + delay: 5 + when: + - enabled_galera + - tripleo_backup_and_restore_service_manager|bool + tags: + - bar_create_recover_image + - name: Get the mysql container id when galera is enabled shell: | set -o pipefail @@ -65,6 +88,17 @@ tags: - bar_create_recover_image +- name: Unpause mysql for backup if it is paused + command: "{{ tripleo_container_cli }} unpause {{ tripleo_backup_and_restore_mysql_container }}" + when: + - mysql_password.stderr is defined + - tripleo_backup_and_restore_mysql_container == "mysql" + - not enabled_galera + - tripleo_backup_and_restore_service_manager|bool + failed_when: false + tags: + - bar_create_recover_image + - name: MySQL Grants backup shell: | set -o pipefail diff --git a/tripleo_ansible/roles/backup_and_restore/tasks/main.yml b/tripleo_ansible/roles/backup_and_restore/tasks/main.yml index d71c236ed..90a27ac0a 100644 --- a/tripleo_ansible/roles/backup_and_restore/tasks/main.yml +++ b/tripleo_ansible/roles/backup_and_restore/tasks/main.yml @@ -49,8 +49,15 @@ - name: Backup pacemaker configuration import_tasks: pacemaker_backup.yml -- name: Create recovery images with ReaR - import_tasks: run_backup.yml +- name: Perform backup + block: + - name: Create recovery images with ReaR + import_tasks: run_backup.yml + always: + - name: Service management + import_tasks: service_manager_unpause.yml + when: + - tripleo_backup_and_restore_service_manager|bool - name: Service management import_tasks: service_manager_unpause.yml diff --git a/tripleo_ansible/roles/backup_and_restore/tasks/service_manager_pause.yml b/tripleo_ansible/roles/backup_and_restore/tasks/service_manager_pause.yml index 0f27ad476..9383e6b8c 100644 --- a/tripleo_ansible/roles/backup_and_restore/tasks/service_manager_pause.yml +++ b/tripleo_ansible/roles/backup_and_restore/tasks/service_manager_pause.yml @@ -39,6 +39,7 @@ /usr/bin/{{ tripleo_container_cli }} ps --format '{{ '{{' }}.Names {{ '}}' }} ' | /usr/bin/egrep -v 'galera|mysql|bundle' register: container_services changed_when: container_services.stdout is undefined + failed_when: false tags: - bar_create_recover_image