Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
261 changes: 261 additions & 0 deletions playbooks/pxb_97.yml
Original file line number Diff line number Diff line change
@@ -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
Comment on lines +56 to +62

- 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"
Comment on lines +84 to +90

#----- ENABLE PXB REPOS

- name: Enable PXB 97 repo testing
command: percona-release enable-only pxb-97-lts testing
when:
- lookup('env', 'install_repo') == "testing"

Comment on lines +94 to +98
- 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
Comment on lines +246 to +253
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"
Loading