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
(cherry picked from commit dbbcb56a62)
This commit is contained in:
Markos Chandras 2018-01-15 23:17:41 +00:00 committed by Jesse Pretorius
parent a3aa5e7424
commit 462b92a0f8
10 changed files with 17 additions and 165 deletions

View File

@ -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: '*'

View File

@ -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:

View File

@ -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"

View File

@ -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 }}"

View File

@ -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 }}"

View File

@ -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:

View File

@ -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: []

View File

@ -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

View File

@ -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

View File

@ -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