diff --git a/defaults/main.yml b/defaults/main.yml index 6917ec7f..bf05ca82 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -40,8 +40,8 @@ galera_debconf_items: [] galera_mariadb_server_package: "{{ _galera_mariadb_server_package }}" # The major version used to select the repo URL path -galera_major_version: 10.2 -galera_minor_version: 17 +galera_major_version: 10.3 +galera_minor_version: 13 # Set the URL for the MariaDB repository galera_repo_host: "downloads.mariadb.com" @@ -61,12 +61,6 @@ galera_repo: "{{ _galera_repo }}" # validate_certs: no galera_gpg_keys: "{{ _galera_gpg_keys | default([]) }}" -# Set the rpo information for the Percona Xtrabackup repository -galera_percona_xtrabackup_repo: "{{ _galera_percona_xtrabackup_repo | default({}) }}" - -# Enable the use of the upstream percona repo -use_percona_upstream: "{{ _use_percona_upstream }}" - galera_monitoring_user: monitoring galera_monitoring_user_password: "" @@ -125,16 +119,14 @@ galera_wsrep_slave_threads_max: 16 galera_wsrep_slave_threads: "{{ [[ansible_processor_vcpus|default(2), 2] | max, galera_wsrep_slave_threads_max] | min }}" galera_wsrep_retry_autocommit: 3 galera_wsrep_debug: 0 -galera_wsrep_sst_method: xtrabackup-v2 +galera_wsrep_sst_method: mariabackup galera_wsrep_provider_options: - { option: "gcache.size", value: "{{ galera_gcache_size }}" } galera_wsrep_sst_auth_user: "root" galera_wsrep_sst_auth_password: "{{ galera_root_password }}" -# Enable compression of backups. -galera_xtrabackup_compression: "{{ (ansible_architecture == 'x86_64') or (ansible_architecture == 'ppc64le' and ansible_distribution == 'Ubuntu') }}" -# xtrabackup parallel/compression/sync threads -galera_xtrabackup_threads: 4 +# mariabackup parallel/sync threads +galera_mariabackup_threads: 4 # Galera slow/unindexed query logging galera_slow_query_logging: 0 @@ -156,16 +148,6 @@ galera_server_distro_package_pins: - package: '*' release: MariaDB priority: 1001 - # Blacklist 10.1.27 release due to https://jira.mariadb.org/browse/MDEV-13908 - # which causes MariaDB to segfault with galera enabled. - - package: mariadb-server - version: 10.1.27+maria-1~xenial - priority: -1 - # TODO(evrardjp): Remove pin when clustering issue is figured out - # Clustering issue - - package: mariadb-server - version: 10.1.31+maria-1~xenial - priority: -1 # Galera Server SSL functionality. diff --git a/releasenotes/notes/disable-compression-e4074dcef9f85c36.yaml b/releasenotes/notes/disable-compression-e4074dcef9f85c36.yaml new file mode 100644 index 00000000..e913bda6 --- /dev/null +++ b/releasenotes/notes/disable-compression-e4074dcef9f85c36.yaml @@ -0,0 +1,5 @@ +--- +deprecations: + - The compression option has been removed due to the fact that it's not + recommended by MariaDB anymore. This means that all the dependencies from + Percona such as QPress are no longer necessary. \ No newline at end of file diff --git a/releasenotes/notes/use-mariabackup-46ae988b43abda06.yaml b/releasenotes/notes/use-mariabackup-46ae988b43abda06.yaml new file mode 100644 index 00000000..7cd2a3d3 --- /dev/null +++ b/releasenotes/notes/use-mariabackup-46ae988b43abda06.yaml @@ -0,0 +1,4 @@ +--- +features: + - The role now uses mariabackup in order to complete SST operations due to + the fact that this is the recommended choice from MariaDB. \ No newline at end of file diff --git a/releasenotes/notes/use-mariadb-10.3.13-7801fd46c5c9ce89.yaml b/releasenotes/notes/use-mariadb-10.3.13-7801fd46c5c9ce89.yaml new file mode 100644 index 00000000..6524da88 --- /dev/null +++ b/releasenotes/notes/use-mariadb-10.3.13-7801fd46c5c9ce89.yaml @@ -0,0 +1,3 @@ +--- +features: + - This role now ships with the latest MariaDB release of 10.3.13. \ No newline at end of file diff --git a/tasks/galera_install.yml b/tasks/galera_install.yml index 1dd366b8..ea27a900 100644 --- a/tasks/galera_install.yml +++ b/tasks/galera_install.yml @@ -15,23 +15,7 @@ - name: Prepare the package list set_fact: - galera_packages_list: |- - {% set packages = galera_server_required_distro_packages + galera_server_mariadb_distro_packages %} - {% if ansible_architecture == 'x86_64' %} - {% set _ = packages.extend(galera_server_percona_distro_packages) %} - {% endif %} - {% if ansible_architecture == 'ppc64le' and ansible_distribution == 'Ubuntu' %} - {% for extra_package in galera_server_percona_distro_packages_alt_arch[ansible_architecture] %} - {% set _package_path = galera_server_extra_package_path ~ '/' ~ ansible_architecture %} - {% set _ = packages.append(_package_path ~ '/' ~ extra_package['url'] | basename) %} - {% endfor %} - {% endif %} - {{ packages }} - -- name: Download the extra packages - include_tasks: galera_install_download_extra_packages.yml - when: - - ansible_architecture == 'ppc64le' + galera_packages_list: "{{ galera_server_required_distro_packages + galera_server_mariadb_distro_packages }}" - include_tasks: "galera_install_{{ ansible_pkg_mgr }}.yml" diff --git a/tasks/galera_install_apt.yml b/tasks/galera_install_apt.yml index a107c059..f2c31196 100644 --- a/tasks/galera_install_apt.yml +++ b/tasks/galera_install_apt.yml @@ -42,7 +42,6 @@ state: absent with_items: - { name: "MariaDB", repo: "{{ galera_repo.repo }}" } - - { name: "Percona", repo: "{{ galera_percona_xtrabackup_repo.repo }}" } - name: Add galera repo apt_repository: @@ -52,14 +51,6 @@ update_cache: "no" register: add_galera_repo -- name: Add percona repo - apt_repository: - repo: "{{ galera_percona_xtrabackup_repo.repo }}" - filename: "{{ galera_percona_xtrabackup_repo.filename | default(omit) }}" - state: "{{ galera_percona_xtrabackup_repo.state }}" - update_cache: "no" - register: add_percona_repo - - name: Preseed galera password(s) debconf: name: "{{ item.name }}" @@ -81,7 +72,7 @@ apt: update_cache: yes when: - - add_galera_repo is changed or add_percona_repo is changed + - add_galera_repo is changed register: update_apt_cache until: update_apt_cache is success retries: 5 diff --git a/tasks/galera_install_download_extra_packages.yml b/tasks/galera_install_download_extra_packages.yml deleted file mode 100644 index bc9d8557..00000000 --- a/tasks/galera_install_download_extra_packages.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -- name: Ensure that galera_server_extra_package_paths exist - file: - path: "{{ galera_server_extra_package_path }}/{{ item.key }}" - state: directory - with_dict: "{{ galera_server_percona_distro_packages_alt_arch }}" - delegate_to: "{{ (galera_server_extra_package_downloader == 'deployment-host') | ternary('localhost', inventory_hostname) }}" - -- name: Download extra packages - get_url: - url: "{{ item.url }}" - dest: "{{ galera_server_extra_package_path }}/{{ galera_server_percona_distro_packages_alt_arch.keys()[0] }}/" - checksum: "{{ item.checksum | default(omit) }}" - force: "{{ item.checksum is not defined }}" - validate_certs: "{{ galera_server_extra_package_validate_certs }}" - with_items: "{{ galera_server_percona_distro_packages_alt_arch.values() | flatten | list }}" - register: fetch_url - until: fetch_url is success - retries: 3 - delay: 10 - delegate_to: "{{ (galera_server_extra_package_downloader == 'deployment-host') | ternary('localhost', inventory_hostname) }}" - -- name: Copy downloaded packages from deployment-host to target-host - copy: - src: "{{ galera_server_extra_package_path }}/{{ item.key }}/{{ item.value.url | basename }}" - dest: "{{ galera_server_extra_package_path }}/{{ item.key }}/" - with_dict: "{{ galera_server_percona_distro_packages_alt_arch }}" - when: - - galera_server_extra_package_downloader == "deployment-host" - register: file_copy - until: file_copy is success - retries: 5 - delay: 10 diff --git a/tasks/galera_install_yum.yml b/tasks/galera_install_yum.yml index a6d4dae9..64982854 100644 --- a/tasks/galera_install_yum.yml +++ b/tasks/galera_install_yum.yml @@ -115,20 +115,6 @@ retries: 5 delay: 2 -- name: Install percona repo - yum_repository: - name: 'percona-release-$basearch' - description: 'Percona-Release YUM repository - $basearch' - baseurl: "{{ galera_percona_xtrabackup_repo.repo }}" - enabled: true - gpgcheck: true - state: "{{ galera_percona_xtrabackup_repo.state }}" - priority: 25 - register: add_percona_repos - until: add_percona_repos is success - retries: 5 - delay: 2 - # When changing the repo URL, the metadata does # not reliably update, resulting in the right # URL being used, but the wrong package list. @@ -138,7 +124,7 @@ command: "{{ ansible_pkg_mgr }} clean metadata" args: warn: no - when: (add_galera_repos is changed) or (add_percona_repos is changed) + when: add_galera_repos is changed tags: - skip_ansible_lint diff --git a/tasks/galera_install_zypper.yml b/tasks/galera_install_zypper.yml index 2c3a75c6..393096ea 100644 --- a/tasks/galera_install_zypper.yml +++ b/tasks/galera_install_zypper.yml @@ -71,11 +71,6 @@ retries: 5 delay: 2 -- name: Fail if upstream Percona is selected - fail: - msg: "Using upstream Percona packages is unsupported on SUSE" - when: use_percona_upstream - - name: Add galera repo zypper_repository: name: "{{ galera_repo.name }}" @@ -89,19 +84,6 @@ retries: 5 delay: 2 -- name: Install percona repo - zypper_repository: - name: "{{ galera_percona_xtrabackup_repo.name }}" - description: "{{ galera_percona_xtrabackup_repo.description }}" - repo: "{{ galera_percona_xtrabackup_repo.repo }}" - autorefresh: yes - auto_import_keys: yes - state: "{{ galera_percona_xtrabackup_repo.state }}" - register: add_repos - until: add_repos is success - retries: 5 - delay: 2 - - name: Install galera_server role remote packages (zypper) zypper: name: "{{ galera_packages_list }}" diff --git a/tasks/main.yml b/tasks/main.yml index 1bf309c3..f4ec05ac 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -29,15 +29,6 @@ tags: - always -- name: Fail if compression is enabled on unsupported architecture/distro - fail: - msg: | - qpress compression is only supported for x86_64 and for Ubuntu/ppc64le - when: - - galera_xtrabackup_compression | bool - - (ansible_architecture != 'x86_64') and - not (ansible_architecture == 'ppc64le' and ansible_distribution == 'Ubuntu') - - name: Gather variables for each operating system include_vars: "{{ item }}" with_first_found: diff --git a/templates/cluster.cnf.j2 b/templates/cluster.cnf.j2 index 2de569be..0831f6fe 100644 --- a/templates/cluster.cnf.j2 +++ b/templates/cluster.cnf.j2 @@ -46,10 +46,5 @@ wsrep_cluster_name = "{{ galera_cluster_name }}" # how many times to retry deadlocked autocommits wsrep_retry_autocommit = {{ galera_wsrep_retry_autocommit }} -[xtrabackup] -{% if galera_xtrabackup_compression | bool %} -compress -compress-threads = {{ galera_xtrabackup_threads }} -{% endif %} -parallel = {{ galera_xtrabackup_threads }} -rebuild-threads = {{ galera_xtrabackup_threads }} +[mariabackup] +parallel = {{ galera_mariabackup_threads }} diff --git a/vars/gentoo.yml b/vars/gentoo.yml index 512b431b..4cce349b 100644 --- a/vars/gentoo.yml +++ b/vars/gentoo.yml @@ -47,12 +47,6 @@ galera_server_upgrade_packages_remove: galera_mariadb_service_name: "mariadb" -galera_server_percona_distro_packages: - - dev-db/percona-toolkit - - dev-db/percona-xtrabackup-bin - - "{{ (galera_xtrabackup_compression | bool) | ternary('app-arch/qpress', '') }}" - galera_wsrep_provider: "/usr/lib64/galera/libgalera_smm.so" -_use_percona_upstream: no mysql_service_name: mariadb diff --git a/vars/redhat-7.yml b/vars/redhat-7.yml index e7918524..8d6f7c2f 100644 --- a/vars/redhat-7.yml +++ b/vars/redhat-7.yml @@ -17,9 +17,6 @@ _galera_gpg_keys: # MariaDB Package Signing Key - key: /etc/pki/rpm-gpg/RPM-GPG-KEY-MariaDB - # Percona MySQL Development Team - - key: /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona - - key: /etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY # Default private device setting # This provides some additional security, but it causes problems with creating @@ -47,6 +44,7 @@ _galera_mariadb_server_package: "MariaDB-server" galera_server_mariadb_distro_packages: - which - "{{ galera_mariadb_server_package }}" + - MariaDB-backup - MariaDB-shared - rsync - socat @@ -70,15 +68,4 @@ _galera_repo: description: "MariaDB Repo" baseurl: "{{ galera_repo_url }}" -_galera_percona_xtrabackup_repo: - repo: "http://{{ galera_percona_xtrabackup_repo_host | default('repo.percona.com') }}/release/$releasever/RPMS/$basearch" - state: "{{ (use_percona_upstream | bool) | ternary('present', 'absent') }}" - -galera_server_percona_distro_packages: - - percona-toolkit - - percona-xtrabackup-24 - - "{{ (galera_xtrabackup_compression | bool) | ternary('qpress', '') }}" - galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so" - -_use_percona_upstream: "{{ ansible_architecture == 'x86_64' }}" diff --git a/vars/suse.yml b/vars/suse.yml index d28ca8a4..eb2e0b39 100644 --- a/vars/suse.yml +++ b/vars/suse.yml @@ -41,6 +41,7 @@ _galera_mariadb_server_package: "MariaDB-server" galera_server_mariadb_distro_packages: - which - "{{ galera_mariadb_server_package }}" + - MariaDB-backup - MariaDB-shared - rsync - socat @@ -66,24 +67,9 @@ _galera_repo: description: "MariaDB Repo" baseurl: "{{ galera_repo_url }}" -# NOTE(hwoarang): Extra repository is only needed for 42.3. If this starts failig due to network issues we should -# simply pin 10.1.31 to Leap 42.3 -_galera_percona_xtrabackup_repo: - name: "OBS:home:markoschandras:osa" - description: "OBS OpenStack Ansible repository" - repo: "https://download.opensuse.org/repositories/home:/markoschandras:/osa/openSUSE_Leap_{{ ansible_distribution_version }}" - state: "{{ (ansible_distribution_major_version == '42') | ternary('present', 'absent') }}" - -galera_server_percona_distro_packages: - - percona-toolkit - - percona-xtrabackup - - "{{ (galera_xtrabackup_compression | bool) | ternary('qpress', '') }}" - galera_wsrep_provider: "/usr/lib64/galera/libgalera_smm.so" mariadb_delete_etc_conf_files: - default_plugins.cnf - galera.cnf - error_log.cnf - -_use_percona_upstream: no diff --git a/vars/ubuntu.yml b/vars/ubuntu.yml index fddbd348..2b3bdece 100644 --- a/vars/ubuntu.yml +++ b/vars/ubuntu.yml @@ -24,9 +24,6 @@ _galera_gpg_keys: # MariaDB Signing Key - id: C74CD1D8 file: /etc/ssl/mariadb-key - # Percona MySQL Development Team (Packaging key) - - id: 8507EFA5 - file: /etc/ssl/percona-pkg-key galera_server_required_distro_packages: - apt-transport-https @@ -56,6 +53,7 @@ _galera_mariadb_server_package: "mariadb-server-{{ galera_major_version }}" galera_server_mariadb_distro_packages: - libmariadb-dev - mariadb-client + - mariadb-backup - "{{ galera_mariadb_server_package }}" - galera-3 - rsync @@ -78,30 +76,11 @@ galera_debconf_items: value: "{{ galera_root_password }}" vtype: "string" -galera_server_percona_distro_packages: - - percona-toolkit - - percona-xtrabackup-24 - - "{{ (galera_xtrabackup_compression | bool) | ternary('qpress', '') }}" - # Repositories -_galera_percona_xtrabackup_repo: - repo: "deb http://{{ galera_percona_xtrabackup_repo_host | default('repo.percona.com') }}/apt {{ ansible_distribution_release }} main" - state: "{{ (use_percona_upstream | bool) | ternary('present', 'absent') }}" - filename: "Percona" - _galera_repo_url: "http://{{ galera_repo_host }}/MariaDB/mariadb-{{ galera_major_version }}.{{ galera_minor_version }}/repo/ubuntu" _galera_repo: repo: "deb {{ galera_repo_url }} {{ ansible_distribution_release }} main" state: "present" filename: "MariaDB" -galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so" - -_use_percona_upstream: "{{ ansible_architecture == 'x86_64' }}" - -galera_server_percona_distro_packages_alt_arch: - ppc64le: - - url: "http://public.dhe.ibm.com/systems/virtualization/Novalink/misc/percona-xtrabackup/percona-xtrabackup-24_2.4.5-1_ppc64el.deb" - checksum: "sha256:3d4e4112f4c8020c9190a91d962dabed1dfaad307160a939e121208887eaee2a" - - url: "http://public.dhe.ibm.com/systems/virtualization/Novalink/misc/qpress/qpress_11-1_ppc64el.deb" - checksum: "sha256:a31d3e00dbcec9b3f98eae82b261d054d0b80a57f4a38967d0e953811cb082f3" +galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so" \ No newline at end of file