From dbbcb56a62e4a97af3f63f970a34a3c815352ced Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Mon, 15 Jan 2018 23:17:41 +0000 Subject: [PATCH] tasks: Fix use_percona_upstream variable usage The 'use_percona_upstream' variable had quite different and conflicting meanings in the tasks. It's used to either denote that the upstream packages will be used directly or that the upstream repositories will be configured on the hosts and then use the packages from these repositories. However, the packages in both cases are the same so the variable was pointless in this form. The variable was meant to be used to select between upstream and downstream repositories for the Percona packages. Moreover, upstream does not provide packages for SUSE so we have to exit the deployment if that variable is set. Partial-Bug: #1654004 Change-Id: I18853707c29955186da5a1f4d6e80bc3012c04f9 --- defaults/main.yml | 19 ----------- tasks/galera_install.yml | 58 ++------------------------------- tasks/galera_install_apt.yml | 11 ++----- tasks/galera_install_yum.yml | 3 +- tasks/galera_install_zypper.yml | 7 +++- tasks/galera_post_install.yml | 2 +- vars/main.yml | 35 -------------------- vars/redhat-7.yml | 16 +-------- vars/suse-42.yml | 9 ++--- vars/ubuntu-16.04.yml | 22 ++----------- 10 files changed, 17 insertions(+), 165 deletions(-) delete mode 100644 vars/main.yml 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