diff --git a/defaults/main.yml b/defaults/main.yml index 06dfbe7a..4bcc0c4b 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -37,7 +37,6 @@ galera_cluster_name: openstack_galera_cluster # if these are used they should be set within the # distro specific variable files found in vars/ galera_debconf_items: [] -galera_server_percona_distro_packages: [] galera_mariadb_server_package: "{{ _galera_mariadb_server_package }}" # The major version used to select the repo URL path @@ -140,24 +139,6 @@ galera_debian_cnf_overrides: {} # if deploying galera on different hardware. # galera_max_connections: 500 -# Settings for percona and qpress -# The [percona|qpress]_arch_[url|sha256] hashes can be found in the distro vars files. -galera_package_arch: "{{ hostvars[inventory_hostname]['ansible_architecture'] }}" - -# Validate SSL certificates when downloading the galera deb above -# May be set to "no" when proxy server is intercepting the certificates. -percona_package_download_validate_certs: yes -percona_package_url: "{{ percona_arch_url.get( galera_package_arch | lower ) }}" -percona_package_fallback_url: "{{ percona_arch_fallback_url.get( galera_package_arch | lower ) }}" -percona_package_sha256: "{{ percona_arch_sha256.get( galera_package_arch | lower ) }}" -percona_package_path: "/opt/{{ percona_package_url | basename }}" - -qpress_package_download_validate_certs: yes -qpress_package_url: "{{ qpress_arch_url.get( galera_package_arch | lower ) }}" -qpress_package_fallback_url: "{{ qpress_arch_fallback_url.get( galera_package_arch | lower ) }}" -qpress_package_sha256: "{{ qpress_arch_sha256.get( galera_package_arch | lower ) }}" -qpress_package_path: "/opt/{{ qpress_package_url | basename }}" - # This is only applied if the ansible_pkg_mgr is 'apt' galera_server_distro_package_pins: - package: '*' diff --git a/tasks/galera_install.yml b/tasks/galera_install.yml index 1d110fb8..a2cd0b66 100644 --- a/tasks/galera_install.yml +++ b/tasks/galera_install.yml @@ -13,63 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: Download xtrabackup - block: - - name: Download the percona-xtrabackup package - get_url: - url: "{{ percona_package_url }}" - dest: "{{ percona_package_path }}" - mode: "0644" - sha256sum: "{{ percona_package_sha256 }}" - validate_certs: "{{ percona_package_download_validate_certs }}" - register: package_download - retries: 3 - delay: 10 - until: package_download | success - rescue: - - name: Download the percona-xtrabackup package (fallback) - get_url: - url: "{{ percona_package_fallback_url }}" - dest: "{{ percona_package_path }}" - mode: "0644" - sha256sum: "{{ percona_package_sha256 }}" - validate_certs: "{{ percona_package_download_validate_certs }}" - register: package_download - retries: 3 - delay: 10 - until: package_download | success - when: - - not use_percona_upstream | bool - -- name: Download qpress - block: - - name: Download the qpress package - get_url: - url: "{{ qpress_package_url }}" - dest: "{{ qpress_package_path }}" - sha256sum: "{{ qpress_package_sha256 }}" - validate_certs: "{{ qpress_package_download_validate_certs }}" - register: package_download - retries: 3 - delay: 10 - until: package_download | success - rescue: - - name: Download the qpress package (fallback) - get_url: - url: "{{ qpress_package_fallback_url }}" - dest: "{{ qpress_package_path }}" - sha256sum: "{{ qpress_package_sha256 }}" - validate_certs: "{{ qpress_package_download_validate_certs }}" - register: package_download - retries: 3 - delay: 10 - until: package_download | success - when: - - not use_percona_upstream | bool - -- name: Add percona external packages to the galera packages list +- name: Add percona packages to the galera packages list set_fact: - galera_install_packages_list: "{{ galera_packages_list | union(percona_packages_list) }}" + galera_packages_list: "{{ galera_server_required_distro_packages + galera_server_mariadb_distro_packages + galera_server_percona_distro_packages }}" - name: Remove conflicting distro packages package: diff --git a/tasks/galera_install_apt.yml b/tasks/galera_install_apt.yml index 62c1b31e..42b77bbb 100644 --- a/tasks/galera_install_apt.yml +++ b/tasks/galera_install_apt.yml @@ -63,7 +63,7 @@ apt_repository: repo: "{{ galera_percona_xtrabackup_repo.repo }}" filename: "{{ galera_percona_xtrabackup_repo.filename | default(omit) }}" - state: "{{ (use_percona_upstream | bool) | ternary('present','absent') }}" + state: "{{ galera_percona_xtrabackup_repo.state }}" update_cache: "no" register: add_percona_repo @@ -85,7 +85,7 @@ - name: Install galera_server role remote packages (apt) apt: - name: "{{ galera_install_packages_list | selectattr('enabled') | rejectattr('local_pkg') | sum(attribute='packages', start=[]) }}" + name: "{{ galera_packages_list }}" state: "{{ galera_server_package_state }}" update_cache: yes cache_valid_time: "{{ (add_galera_repo | changed or add_percona_repo | changed) | ternary('0', cache_timeout) }}" @@ -94,13 +94,6 @@ retries: 5 delay: 2 -- name: Install galera_server role local packages (apt) - apt: - deb: "{{ item }}" - force: yes - with_items: - - "{{ galera_install_packages_list | selectattr('enabled') | selectattr('local_pkg') | sum(attribute='packages', start=[]) }}" - - name: Remove policy-rc file: path: "/usr/sbin/policy-rc.d" diff --git a/tasks/galera_install_yum.yml b/tasks/galera_install_yum.yml index 2f16cd53..a65f04e3 100644 --- a/tasks/galera_install_yum.yml +++ b/tasks/galera_install_yum.yml @@ -84,7 +84,6 @@ until: install_packages|success retries: 5 delay: 2 - when: use_percona_upstream | bool # NOTE(mhayden): MariaDB/percona repositories are prioritized at 99 by default # and that allows yum to install galera from the RDO repos, which is not good. @@ -102,5 +101,5 @@ - name: Install galera_server role remote packages package: - name: "{{ galera_install_packages_list | selectattr('enabled') | sum(attribute='packages', start=[]) }}" + name: "{{ galera_packages_list }}" state: "{{ galera_server_package_state }}" diff --git a/tasks/galera_install_zypper.yml b/tasks/galera_install_zypper.yml index 8d15e786..4ee46244 100644 --- a/tasks/galera_install_zypper.yml +++ b/tasks/galera_install_zypper.yml @@ -49,6 +49,11 @@ with_items: "{{ galera_gpg_keys }}" when: item.fallback_keyserver is defined +- 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 }}" @@ -64,5 +69,5 @@ - name: Install galera_server role remote packages (zypper) zypper: - name: "{{ galera_packages_list | selectattr('enabled') | sum(attribute='packages', start=[]) }}" + name: "{{ galera_packages_list }}" state: "{{ galera_server_package_state }}" diff --git a/tasks/galera_post_install.yml b/tasks/galera_post_install.yml index 0cb940bb..114cb50e 100644 --- a/tasks/galera_post_install.yml +++ b/tasks/galera_post_install.yml @@ -110,7 +110,7 @@ file: state: absent path: "{{ galera_etc_include_dir }}/{{ item }}" - with_items: "{{ mariadb_delete_etc_conf_files }}" + with_items: "{{ mariadb_delete_etc_conf_files | default([]) }}" - name: Drop mariadb config(s) config_template: diff --git a/vars/main.yml b/vars/main.yml deleted file mode 100644 index 7a152ae2..00000000 --- a/vars/main.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -# Copyright 2017, 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. - -galera_packages_list: - - packages: "{{ galera_server_required_distro_packages }}" - enabled: yes - local_pkg: no - - packages: "{{ galera_server_mariadb_distro_packages }}" - enabled: yes - local_pkg: no - - packages: "{{ galera_server_percona_distro_packages }}" - enabled: "{{ use_percona_upstream }}" - local_pkg: no - -percona_packages_list: - - packages: "{{ [percona_package_path] }}" - enabled: "{{ not use_percona_upstream }}" - local_pkg: yes - - packages: "{{ [qpress_package_path] }}" - enabled: "{{ not use_percona_upstream }}" - local_pkg: yes - -mariadb_delete_etc_conf_files: [] diff --git a/vars/redhat-7.yml b/vars/redhat-7.yml index dcddabd7..a5470d25 100644 --- a/vars/redhat-7.yml +++ b/vars/redhat-7.yml @@ -73,27 +73,13 @@ _galera_repo: _galera_percona_xtrabackup_repo: repo: "http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm" - state: "present" + state: "{{ (use_percona_upstream | bool) | ternary('present', 'absent') }}" galera_server_percona_distro_packages: - percona-toolkit - percona-xtrabackup - "{{ (galera_xtrabackup_compression | bool) | ternary('qpress', '') }}" -percona_arch_url: - x86_64: "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm" -percona_arch_fallback_url: - x86_64: "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm" -percona_arch_sha256: - x86_64: "868df0244045615da00687210474f879442227b1ac1a7e14cd5e6be55caa08ae" - -qpress_arch_url: - x86_64: "https://repo.percona.com/centos/7/RPMS/x86_64/qpress-11-1.el7.x86_64.rpm" -qpress_arch_fallback_url: - x86_64: "https://mirrors.mediatemple.net/percona/testing/centos/7/RPMS/x86_64/qpress-11-1.el7.x86_64.rpm" -qpress_arch_sha256: - x86_64: "d6b6b7ca3a5ad4baea34975743106ac54ac746b3e6497d59bce55765d604b697" - galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so" _use_percona_upstream: yes diff --git a/vars/suse-42.yml b/vars/suse-42.yml index eb2e9ecc..6e6237e2 100644 --- a/vars/suse-42.yml +++ b/vars/suse-42.yml @@ -74,14 +74,9 @@ galera_server_percona_distro_packages: galera_wsrep_provider: "/usr/lib64/galera/libgalera_smm.so" -_use_percona_upstream: yes -# NOTE(hwoarang): The default one provided in vars/main.yml depends on -# variables defined in defaults/main.yml. However such defaults do not make -# sense for SUSE distributions and as such we provide an empty list here since -# we grab everything from the distro repositories. -percona_packages_list: [] - mariadb_delete_etc_conf_files: - default_plugins.cnf - galera.cnf - error_log.cnf + +_use_percona_upstream: no diff --git a/vars/ubuntu-16.04.yml b/vars/ubuntu-16.04.yml index 6abfe181..0682fd27 100644 --- a/vars/ubuntu-16.04.yml +++ b/vars/ubuntu-16.04.yml @@ -86,28 +86,10 @@ galera_server_percona_distro_packages: - percona-xtrabackup - "{{ (galera_xtrabackup_compression | bool) | ternary('qpress', '') }}" -percona_arch_url: - x86_64: "https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/debian/xenial/x86_64/percona-xtrabackup-24_2.4.8-1.xenial_amd64.deb" - ppc64le: "http://public.dhe.ibm.com/systems/virtualization/Novalink/misc/percona-xtrabackup/percona-xtrabackup-24_2.4.5-1_ppc64el.deb" -percona_arch_fallback_url: - x86_64: "http://mirrors.reflected.net/percona/apt/pool/main/p/percona-xtrabackup-24/percona-xtrabackup-24_2.4.8-1.xenial_amd64.deb" -percona_arch_sha256: - x86_64: "00a4a00fb08c950008cc63afa230aac2c91066dc84df112f48dd64dcc811696c" - ppc64le: "3d4e4112f4c8020c9190a91d962dabed1dfaad307160a939e121208887eaee2a" - -qpress_arch_url: - x86_64: "https://repo.percona.com/apt/pool/main/q/qpress/qpress_11-1.xenial_amd64.deb" - ppc64le: "http://public.dhe.ibm.com/systems/virtualization/Novalink/misc/qpress/qpress_11-1_ppc64el.deb" -qpress_arch_fallback_url: - x86_64: "http://mirrors.reflected.net/percona/apt/pool/testing/q/qpress/qpress_11-1.xenial_amd64.deb" -qpress_arch_sha256: - x86_64: "c615ec08eb38a9cb59541ae1d7ed42db35e92513735834b48d30d4c485e01534" - ppc64le: "a31d3e00dbcec9b3f98eae82b261d054d0b80a57f4a38967d0e953811cb082f3" - # Repositories _galera_percona_xtrabackup_repo: repo: "deb http://repo.percona.com/apt {{ ansible_distribution_release }} main" - state: "present" + state: "{{ (use_percona_upstream | bool) | ternary('present', 'absent') }}" filename: "Percona" # TODO(evrardjp): Unfreeze version to 10.1 branch when clustering issue is solved. @@ -119,4 +101,4 @@ _galera_repo: galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so" -_use_percona_upstream: no +_use_percona_upstream: yes