diff --git a/playbooks/pxb_97.yml b/playbooks/pxb_97.yml new file mode 100644 index 000000000..8154a2b49 --- /dev/null +++ b/playbooks/pxb_97.yml @@ -0,0 +1,261 @@ +--- +# This playbook does following: +# enables Percona testing repository +# installs latest version of PS 9.7 / MS 9.7 and PXB 9.7 +# does some tests + +- hosts: all + become: true + become_method: sudo + vars: + gnupg_home: /root/.gnupg + percona_key1: 4D1BB29D63D98E422B2113B19334A25F8507EFA5 + percona_key1_file: "{{ gnupg_home }}/PERCONA-PACKAGING-KEY" + environment: + PERCONA_TELEMETRY_URL: "https://check-dev.percona.com/v1/telemetry/GenericReport" + + tasks: + - name: include tasks for test env setup + include_tasks: ../tasks/test_prep.yml + + - name: include tasks for enabling PS 97 main repo + include_tasks: ../tasks/enable_ps97_main_repo.yml + when: + - lookup('env', 'install_repo') == "main" + - lookup('env', 'server_to_test') == "ps-97" + + - name: include tasks for enabling PS 97 test repo + include_tasks: ../tasks/enable_ps97_testing_repo.yml + when: + - lookup('env', 'install_repo') == "testing" or lookup('env', 'install_repo') == "" + - lookup('env', 'server_to_test') == "ps-97" + + - name: include tasks for enabling PS 97 experimental repo + include_tasks: ../tasks/enable_ps97_experimental_repo.yml + when: + - lookup('env', 'install_repo') == "experimental" + - lookup('env', 'server_to_test') == "ps-97" + + - name: download and extract world database + command: "{{ item }}" + with_items: + - wget --no-check-certificate -P /package-testing https://raw.githubusercontent.com/Percona-QA/percona-qa/master/sample_db/world.sql + +## INSTALL PS + - name: install Percona Server 9.7 packages + include_tasks: + file: ../tasks/install_ps97.yml + apply: + environment: + PERCONA_TELEMETRY_DISABLE: "1" + when: + - lookup('env', 'server_to_test') == "ps-97" + +# INSTALL MS + + - name: Extract PXB major and minor version number using shell commands + shell: cat /package-testing/VERSIONS | grep 'PS97_VER' | cut -d'=' -f2 | sed 's/"//g' | cut -d'-' -f1 + register: pxb_version_major_minor_register + + - name: Extract PXB major version number using shell commands + shell: cat /package-testing/VERSIONS | grep PS97_VER | awk -F'[=".]' '{print $3"."$4}' + register: pxb_version_major_register + + - name: Extract version number using shell commands + shell: cat /package-testing/VERSIONS | grep -oP 'PS97_VER="\K(\d+)\.(\d+)' | tr -d '.' + register: major_release_version_register + + - name: Set major_release_version variable + set_fact: + major_release_version_reg: "{{ major_release_version_register.stdout }}" + + - name: Set pxb_version_major variable + set_fact: + pxb_version_major_reg: "{{ pxb_version_major_register.stdout }}" + + - name: Set pxb_version_major_minor variable + set_fact: + pxb_version_major_minor_reg: "{{ pxb_version_major_minor_register.stdout }}" + + - name: DEBUG PXB version number + debug: + msg: "PXB version number is {{ pxb_version_major_reg }} {{ pxb_version_major_minor_reg }}" + + - name: install MYSQL MS Server 9.7 packages + include_tasks: ../tasks/install_ms_innovation.yml + vars: + pxb_version_major: "{{ pxb_version_major_reg }}" + pxb_version_major_minor: "{{ pxb_version_major_minor_reg }}" + when: + - lookup('env', 'server_to_test') == "ms-97" + + #----- ENABLE PXB REPOS + + - name: Enable PXB 97 repo testing + command: percona-release enable-only pxb-97-lts testing + when: + - lookup('env', 'install_repo') == "testing" + + - name: Enable PXB 97 repo main + command: percona-release enable-only pxb-97-lts release + when: + - lookup('env', 'install_repo') == "main" + + - name: Enable PXB 97 repo experimental + command: percona-release enable-only pxb-97-lts experimental + when: + - lookup('env', 'install_repo') == "experimental" + + - name: install Percona XtraBackup 9.7 packages + include_tasks: ../tasks/install_pxb97.yml + + - name: check telemetry (enabled) + command: /package-testing/check_telemetry.sh pxb -e + when: + - ansible_distribution != "Rocky" + + - name: start mysql service with systemctl command + command: systemctl start mysqld + when: ansible_os_family == "RedHat" + + - name: PRINT INSTALLED XTRABACKUP version rhel + shell: rpm -qa | grep percona-xtrabackup + when: + - ansible_os_family == "RedHat" + register: xtrabackup_version_print + + - name: DEBUG xtrabackup_version_print rhel + debug: + msg: "Xtrabackup version is {{ xtrabackup_version_print.stdout }}" + when: + - ansible_os_family == "RedHat" + + - name: PRINT INSTALLED XTRABACKUP version DEBIAN + shell: apt list --installed 2>&1 | grep percona-xtrabackup + when: + - ansible_os_family == "Debian" + register: xtrabackup_version_print + + - name: DEBUG xtrabackup_version_print DEBIAN + debug: + msg: "Xtrabackup version is {{ xtrabackup_version_print.stdout }}" + when: + - ansible_os_family == "Debian" + + - name: set root password on centos + command: /package-testing/setpass_57.sh + when: ansible_os_family == "RedHat" + + - name: copy .my.cnf with credentials on centos + template: src=../templates/my_57.j2 + dest=/root/.my.cnf + mode=0640 owner=root group=root + when: ansible_os_family == "RedHat" + + - name: restart mysql service + service: name=mysqld state=restarted + when: ansible_os_family == "RedHat" + + - name: restart mysql service debian + service: name=mysql state=restarted + when: ansible_os_family == "Debian" + + - name: install plugins, import world database + command: /package-testing/plugins_test.sh + + - name: Print the version of the installed Percona XtraBackup + shell: | + { + echo " xtrabackup --version is "; + xtrabackup --version || echo "FAILED: xtrabackup --version"; + echo "xbstream --version is "; + xbstream --version || echo "FAILED: xbstream --version"; + echo "xbcloud --version is "; + xbcloud --version || echo "FAILED: xbcloud --version"; + echo "xbcrypt --version is "; + xbcrypt --version || echo "FAILED: xbcrypt --version"; + } + register: version_output + ignore_errors: yes + + - name: Display version information + debug: + var: version_output.stdout_lines + + - name: check that Percona XtraBackup version is correct + command: /package-testing/version_check.sh pxb97 + + - name: check that Percona XtraBackup package versions are correct + command: /package-testing/package_check.sh pxb97 + + - name: run backup + command: /usr/bin/xtrabackup --backup --user=root --target-dir=/tmp/backups/ + + - name: prepare backup + command: /usr/bin/xtrabackup --prepare --user=root --target-dir=/tmp/backups/ + + - name: install lz4 and zstd packages on Redhat/CentOS + yum: + name: "{{ packages }}" + vars: + packages: + - lz4 + - zstd + when: ansible_os_family == "RedHat" + + - name: install lz4 and zstd packages on Ubuntu/Debian + apt: + name: "{{ packages }}" + vars: + packages: + - lz4 + - zstd + when: ansible_os_family == "Debian" + + - name: run backup with lz4 compression + command: /usr/bin/xtrabackup --backup --user=root --target-dir=/tmp/backup_l/ --compress=lz4 --compress-threads=10 + + - name: decompress backup + command: /usr/bin/xtrabackup --decompress --user=root --target-dir=/tmp/backup_l/ + + - name: prepare backup + command: /usr/bin/xtrabackup --prepare --user=root --target-dir=/tmp/backup_l/ + + - name: run backup with zstd compression + command: /usr/bin/xtrabackup --backup --user=root --target-dir=/tmp/backup_z/ --compress=zstd --compress-threads=10 + + - name: decompress backup + command: /usr/bin/xtrabackup --decompress --user=root --target-dir=/tmp/backup_z/ + + - name: prepare backup + command: /usr/bin/xtrabackup --prepare --user=root --target-dir=/tmp/backup_z/ + + - name: remove Percona Server deb packages + apt: + name: "{{ packages }}" + update_cache: no + state: absent + vars: + packages: + - percona-server-server* + - percona-xtrabackup-97 + when: + - ansible_os_family == "Debian" + - lookup('env', 'server_to_test') != "ms-97" + + - name: remove Percona Server rpm packages + yum: + name: "{{ packages }}" + state: absent + vars: + packages: + - percona-server-server* + - percona-xtrabackup-97 + when: + - ansible_os_family == "RedHat" + - lookup('env', 'server_to_test') != "ms-97" + + - name: check if process is stopped after package removal + command: /package-testing/check_running.sh mysql stopped + when: + - lookup('env', 'server_to_test') != "ms-97" diff --git a/playbooks/pxb_97_major_upgrade.yml b/playbooks/pxb_97_major_upgrade.yml new file mode 100644 index 000000000..ff7e4259e --- /dev/null +++ b/playbooks/pxb_97_major_upgrade.yml @@ -0,0 +1,280 @@ +--- +# This playbook does following (major upgrade path): +# installs PS 8.4 from release repo +# installs PXB 8.4 from release repo +# runs some tests / backup +# removes PXB 8.4 +# enables PS 9.7 release repo, upgrades PS to 9.7 +# enables PXB 9.7 testing repo +# installs PXB 9.7 (major upgrade) +# runs post-upgrade tests / backup +# + +- hosts: all + become: true + become_method: sudo + vars: + gnupg_home: /root/.gnupg + percona_key1: 4D1BB29D63D98E422B2113B19334A25F8507EFA5 + percona_key1_file: "{{ gnupg_home }}/PERCONA-PACKAGING-KEY" + environment: + PERCONA_TELEMETRY_URL: "https://check-dev.percona.com/v1/telemetry/GenericReport" + + tasks: + - name: include tasks for test env setup + include_tasks: ../tasks/test_prep.yml + + - name: download and extract world database + command: "{{ item }}" + with_items: + - wget --no-check-certificate -P /package-testing https://raw.githubusercontent.com/Percona-QA/percona-qa/master/sample_db/world.sql + +# ---------- INSTALL PS 8.4 (RELEASE) ---------- + + - name: include tasks for enabling PS 8.4 main (release) repo + include_tasks: ../tasks/enable_ps84_main_repo.yml + when: + - lookup('env', 'server_to_test') == "ps-97" + + - name: install Percona Server 8.4 packages + include_tasks: + file: ../tasks/install_ps84.yml + apply: + environment: + PERCONA_TELEMETRY_DISABLE: "1" + when: + - lookup('env', 'server_to_test') == "ps-97" + + - name: Install percona release if ms-97 is selected + include_tasks: ../tasks/install_percona-release.yml + when: + - lookup('env', 'server_to_test') == "ms-97" + +# ---------- INSTALL MS 8.4 (release) ---------- + + - name: Extract PXB84 major and minor version number using shell commands + shell: cat /package-testing/VERSIONS | grep 'PXB84_VER' | cut -d'=' -f2 | sed 's/"//g' + register: pxb84_version_major_minor_register + + - name: Extract PXB84 major version number using shell commands + shell: cat /package-testing/VERSIONS | grep PXB84_VER | awk -F'[=".]' '{print $3"."$4}' + register: pxb84_version_major_register + + - name: Set pxb84_version_major variable + set_fact: + pxb84_version_major_reg: "{{ pxb84_version_major_register.stdout }}" + + - name: Set pxb84_version_major_minor variable + set_fact: + pxb84_version_major_minor_reg: "{{ pxb84_version_major_minor_register.stdout }}" + + - name: install MYSQL MS Server 8.4 packages + include_tasks: ../tasks/install_ms_innovation.yml + vars: + pxb_version_major: "{{ pxb84_version_major_reg }}" + pxb_version_major_minor: "{{ pxb84_version_major_minor_reg }}" + when: + - lookup('env', 'server_to_test') == "ms-97" + +# ---------- INSTALL PXB 8.4 (release) ---------- + + - name: Enable PXB 8.4 release repo + command: percona-release enable pxb-84-lts release + + - name: install Percona XtraBackup 8.4 packages + include_tasks: + file: ../tasks/install_pxb84.yml + apply: + environment: + PERCONA_TELEMETRY_DISABLE: "1" + +# ---------- START MYSQL, RUN TESTS BEFORE UPGRADE ---------- + + - name: Print the version of the installed Percona XtraBackup BEFORE UPGRADE + shell: | + { + echo "XTRABACKUP VERSION is "; + xtrabackup --version || echo "FAILED: xtrabackup --version"; + echo "xbstream VERSION is "; + xbstream --version || echo "FAILED: xbstream --version"; + echo "xbcloud VERSION is "; + xbcloud --version || echo "FAILED: xbcloud --version"; + echo "xbcrypt VERSION is "; + xbcrypt --version || echo "FAILED: xbcrypt --version"; + echo "list rpm packages "; + rpm -qa | grep "percona" || echo "FAILED: rpm -qa | grep percona"; + echo "list deb packages"; + dpkg -l | grep "percona" || echo "FAILED: dpkg -l | grep percona"; + } + register: version_output + ignore_errors: yes + + - name: Display version information BEFORE UPGRADE + debug: + var: version_output.stdout_lines + + - name: check that Percona XtraBackup 8.4 version is correct + command: /package-testing/version_check.sh pxb84 + + - name: start mysql service with systemctl command + command: systemctl start mysqld + when: ansible_os_family == "RedHat" + + - name: set root password on centos + command: /package-testing/setpass_57.sh + when: ansible_os_family == "RedHat" + + - name: copy .my.cnf with credentials on centos + template: src=../templates/my_57.j2 + dest=/root/.my.cnf + mode=0640 owner=root group=root + when: ansible_os_family == "RedHat" + + - name: restart mysql service + service: name=mysqld state=restarted + when: ansible_os_family == "RedHat" + + - name: restart mysql service debian + service: name=mysql state=restarted + when: ansible_os_family == "Debian" + + - name: install plugins, import world database + command: /package-testing/plugins_test.sh + + - name: run backup with PXB 8.4 + command: /usr/bin/xtrabackup --backup --user=root --target-dir=/tmp/backups_84/ + + - name: prepare backup with PXB 8.4 + command: /usr/bin/xtrabackup --prepare --user=root --target-dir=/tmp/backups_84/ + +# ---------- MAJOR UPGRADE: REMOVE PXB 8.4, UPGRADE PS TO 9.7, INSTALL PXB 9.7 ---------- + + - name: remove PXB 8.4 packages before major upgrade + include_tasks: ../tasks/remove_pxb84.yml + + - name: disable all percona repos + command: percona-release disable all + + - name: include tasks for enabling PS 9.7 main (release) repo + include_tasks: ../tasks/enable_ps97_main_repo.yml + when: + - lookup('env', 'server_to_test') == "ps-97" + + - name: install Percona Server 9.7 packages (upgrade PS 8.4 -> 9.7) + include_tasks: + file: ../tasks/install_ps97.yml + apply: + environment: + PERCONA_TELEMETRY_DISABLE: "1" + when: + - lookup('env', 'server_to_test') == "ps-97" + + - name: Extract PS97 major and minor version number using shell commands + shell: cat /package-testing/VERSIONS | grep 'PS97_VER' | cut -d'=' -f2 | sed 's/"//g' | cut -d'-' -f1 + register: ps97_version_major_minor_register + + - name: Extract PS97 major version number using shell commands + shell: cat /package-testing/VERSIONS | grep PS97_VER | awk -F'[=".]' '{print $3"."$4}' + register: ps97_version_major_register + + - name: Set ps97_version_major variable + set_fact: + ps97_version_major_reg: "{{ ps97_version_major_register.stdout }}" + + - name: Set ps97_version_major_minor variable + set_fact: + ps97_version_major_minor_reg: "{{ ps97_version_major_minor_register.stdout }}" + + - name: install MYSQL MS Server 9.7 packages (upgrade MS 8.4 -> 9.7) + include_tasks: ../tasks/install_ms_innovation.yml + vars: + pxb_version_major: "{{ ps97_version_major_reg }}" + pxb_version_major_minor: "{{ ps97_version_major_minor_reg }}" + when: + - lookup('env', 'server_to_test') == "ms-97" + +# ---------- INSTALL PXB 9.7 FROM TESTING ---------- + + - name: Enable PXB 9.7 testing repo + command: percona-release enable-only pxb-97-lts testing + + - name: install Percona XtraBackup 9.7 packages (major upgrade to 9.7) + include_tasks: + file: ../tasks/install_pxb97.yml + apply: + environment: + PERCONA_TELEMETRY_DISABLE: "1" + +# ---------- POST-UPGRADE CHECKS ---------- + + - name: Print the version of the installed Percona XtraBackup AFTER UPGRADE + shell: | + { + echo "XTRABACKUP VERSION is "; + xtrabackup --version || echo "FAILED: xtrabackup --version"; + echo "xbstream VERSION is "; + xbstream --version || echo "FAILED: xbstream --version"; + echo "xbcloud VERSION is "; + xbcloud --version || echo "FAILED: xbcloud --version"; + echo "xbcrypt VERSION is "; + xbcrypt --version || echo "FAILED: xbcrypt --version"; + echo "list rpm packages "; + rpm -qa | grep "percona" || echo "FAILED: rpm -qa | grep percona"; + echo "list deb packages"; + dpkg -l | grep "percona" || echo "FAILED: dpkg -l | grep percona"; + } + register: version_output + ignore_errors: yes + + - name: Display version information AFTER UPGRADE + debug: + var: version_output.stdout_lines + + - name: start mysql service after PS upgrade RHEL + command: systemctl start mysqld + when: ansible_os_family == "RedHat" + ignore_errors: yes + + - name: start mysql service after PS upgrade Debian + service: name=mysql state=started + when: ansible_os_family == "Debian" + ignore_errors: yes + + - name: check that Percona XtraBackup 9.7 version is correct + command: /package-testing/version_check.sh pxb97 + + - name: check that Percona XtraBackup 9.7 package versions are correct + command: /package-testing/package_check.sh pxb97 + + - name: run backup with PXB 9.7 + command: /usr/bin/xtrabackup --backup --user=root --target-dir=/tmp/backups_97/ + + - name: prepare backup with PXB 9.7 + command: /usr/bin/xtrabackup --prepare --user=root --target-dir=/tmp/backups_97/ + +# ---------- CLEANUP ---------- + + - name: remove Percona Server deb packages + apt: + name: "{{ packages }}" + update_cache: no + state: absent + vars: + packages: + - percona-server-server + - percona-xtrabackup-97 + when: + - ansible_os_family == "Debian" + - lookup('env', 'server_to_test') != "ms-97" + + - name: remove Percona Server rpm packages + dnf: + name: "{{ packages }}" + state: absent + vars: + packages: + - percona-server-server + - percona-xtrabackup-97 + when: + - ansible_facts['distribution'] in ["RedHat", "CentOS", "OracleLinux", "Amazon", "Rocky"] + - lookup('env', 'server_to_test') != "ms-97" diff --git a/playbooks/pxb_97_upgrade.yml b/playbooks/pxb_97_upgrade.yml new file mode 100644 index 000000000..675c2e181 --- /dev/null +++ b/playbooks/pxb_97_upgrade.yml @@ -0,0 +1,210 @@ +--- +# This playbook does following (minor upgrade within 9.7): +# installs PS 9.7 and PXB 9.7 from release repo +# changes repo to pxb-97-lts testing +# upgrades PXB 9.7 packages to the new version +# does some tests +# + +- hosts: all + become: true + become_method: sudo + vars: + gnupg_home: /root/.gnupg + percona_key1: 4D1BB29D63D98E422B2113B19334A25F8507EFA5 + percona_key1_file: "{{ gnupg_home }}/PERCONA-PACKAGING-KEY" + environment: + PERCONA_TELEMETRY_URL: "https://check-dev.percona.com/v1/telemetry/GenericReport" + + tasks: + - name: include tasks for test env setup + include_tasks: ../tasks/test_prep.yml + + - name: download and extract world database + command: "{{ item }}" + with_items: + - wget --no-check-certificate -P /package-testing https://raw.githubusercontent.com/Percona-QA/percona-qa/master/sample_db/world.sql + +# INSTALL PS 9.7 (RELEASE) + + - name: include tasks for enabling PS 9.7 main (release) repo + include_tasks: ../tasks/enable_ps97_main_repo.yml + when: + - lookup('env', 'server_to_test') == "ps-97" + + - name: install Percona Server 9.7 packages + include_tasks: + file: ../tasks/install_ps97.yml + apply: + environment: + PERCONA_TELEMETRY_DISABLE: "1" + when: + - lookup('env', 'server_to_test') == "ps-97" + + - name: Install percona release if ms-97 is selected + include_tasks: ../tasks/install_percona-release.yml + when: + - lookup('env', 'server_to_test') == "ms-97" + +# INSTALL MS 9.7 + + - name: Extract PS 9.7 major and minor version number using shell commands + shell: cat /package-testing/VERSIONS | grep 'PS97_VER' | cut -d'=' -f2 | sed 's/"//g' | cut -d'-' -f1 + register: pxb_version_major_minor_register + + - name: Extract PS 9.7 major version number using shell commands + shell: cat /package-testing/VERSIONS | grep PS97_VER | awk -F'[=".]' '{print $3"."$4}' + register: pxb_version_major_register + + - name: Set pxb_version_major variable + set_fact: + pxb_version_major_reg: "{{ pxb_version_major_register.stdout }}" + + - name: Set pxb_version_major_minor variable + set_fact: + pxb_version_major_minor_reg: "{{ pxb_version_major_minor_register.stdout }}" + + - name: install MYSQL MS Server 9.7 packages + include_tasks: ../tasks/install_ms_innovation.yml + vars: + pxb_version_major: "{{ pxb_version_major_reg }}" + pxb_version_major_minor: "{{ pxb_version_major_minor_reg }}" + when: + - lookup('env', 'server_to_test') == "ms-97" + +# INSTALL PXB 9.7 (RELEASE) + + - name: Enable PXB 9.7 release repo + command: percona-release enable pxb-97-lts release + + - name: install Percona XtraBackup 9.7 packages RELEASE repo + include_tasks: + file: ../tasks/install_pxb97.yml + apply: + environment: + PERCONA_TELEMETRY_DISABLE: "1" + +## CHECK VERSIONS BEFORE UPGRADE + - name: Print the version of the installed Percona XtraBackup BEFORE UPGRADE + shell: | + { + echo "XTRABACKUP VERSION is "; + xtrabackup --version || echo "FAILED: xtrabackup --version"; + echo "xbstream VERSION is "; + xbstream --version || echo "FAILED: xbstream --version"; + echo "xbcloud VERSION is "; + xbcloud --version || echo "FAILED: xbcloud --version"; + echo "xbcrypt VERSION is "; + xbcrypt --version || echo "FAILED: xbcrypt --version"; + echo "list rpm packages "; + rpm -qa | grep "percona" || echo "FAILED: rpm -qa | grep percona"; + echo "list deb packages"; + dpkg -l | grep "percona" || echo "FAILED: dpkg -l | grep percona"; + } + register: version_output + ignore_errors: yes + + - name: Display version information BEFORE UPGRADE + debug: + var: version_output.stdout_lines + +## Start mysql services + + - name: start mysql service with systemctl command + command: systemctl start mysqld + when: ansible_os_family == "RedHat" + + - name: set root password on centos + command: /package-testing/setpass_57.sh + when: ansible_os_family == "RedHat" + + - name: copy .my.cnf with credentials on centos + template: src=../templates/my_57.j2 + dest=/root/.my.cnf + mode=0640 owner=root group=root + when: ansible_os_family == "RedHat" + + - name: restart mysql service + service: name=mysqld state=restarted + when: ansible_os_family == "RedHat" + + - name: restart mysql service debian + service: name=mysql state=restarted + when: ansible_os_family == "Debian" + + - name: install plugins, import world database + command: /package-testing/plugins_test.sh + +## ENABLE PXB 9.7 TESTING REPO AND UPGRADE + + - name: Enable PXB 9.7 testing repo + command: percona-release enable-only pxb-97-lts testing + + - name: install Percona XtraBackup 9.7 packages TESTING repo UPGRADE + include_tasks: + file: ../tasks/install_pxb97.yml + apply: + environment: + PERCONA_TELEMETRY_DISABLE: "1" + +## VERSION CHECK AFTER UPGRADE + + - name: Print the version of the installed Percona XtraBackup AFTER UPGRADE + shell: | + { + echo "XTRABACKUP VERSION is "; + xtrabackup --version || echo "FAILED: xtrabackup --version"; + echo "xbstream VERSION is "; + xbstream --version || echo "FAILED: xbstream --version"; + echo "xbcloud VERSION is "; + xbcloud --version || echo "FAILED: xbcloud --version"; + echo "xbcrypt VERSION is "; + xbcrypt --version || echo "FAILED: xbcrypt --version"; + echo "list rpm packages "; + rpm -qa | grep "percona" || echo "FAILED: rpm -qa | grep percona"; + echo "list deb packages"; + dpkg -l | grep "percona" || echo "FAILED: dpkg -l | grep percona"; + } + register: version_output + ignore_errors: yes + + - name: Display version information AFTER UPGRADE + debug: + var: version_output.stdout_lines + + - name: check that Percona XtraBackup version is correct + command: /package-testing/version_check.sh pxb97 + + - name: check that Percona XtraBackup package versions are correct + command: /package-testing/package_check.sh pxb97 + + - name: run backup after update + command: /usr/bin/xtrabackup --backup --user=root --target-dir=/tmp/backups/ + + - name: prepare backup after update + command: /usr/bin/xtrabackup --prepare --user=root --target-dir=/tmp/backups/ + + - name: remove Percona Server deb packages + apt: + name: "{{ packages }}" + update_cache: no + state: absent + vars: + packages: + - percona-server-server + - percona-xtrabackup-97 + when: + - ansible_os_family == "Debian" + - lookup('env', 'server_to_test') != "ms-97" + + - name: remove Percona Server rpm packages + dnf: + name: "{{ packages }}" + state: absent + vars: + packages: + - percona-server-server + - percona-xtrabackup-97 + when: + - ansible_facts['distribution'] in ["RedHat", "CentOS", "OracleLinux", "Amazon", "Rocky"] + - lookup('env', 'server_to_test') != "ms-97"