Skip to content

Commit

Permalink
tasks: Fix use_percona_upstream variable usage
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Markos Chandras committed Feb 22, 2018
1 parent 7596eaa commit dbbcb56
Show file tree
Hide file tree
Showing 10 changed files with 17 additions and 165 deletions.
19 changes: 0 additions & 19 deletions defaults/main.yml
Expand Up @@ -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
Expand Down Expand Up @@ -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: '*'
Expand Down
58 changes: 2 additions & 56 deletions tasks/galera_install.yml
Expand Up @@ -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:
Expand Down
11 changes: 2 additions & 9 deletions tasks/galera_install_apt.yml
Expand Up @@ -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

Expand All @@ -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) }}"
Expand All @@ -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"
Expand Down
3 changes: 1 addition & 2 deletions tasks/galera_install_yum.yml
Expand Up @@ -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.
Expand All @@ -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 }}"
7 changes: 6 additions & 1 deletion tasks/galera_install_zypper.yml
Expand Up @@ -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 }}"
Expand All @@ -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 }}"
2 changes: 1 addition & 1 deletion tasks/galera_post_install.yml
Expand Up @@ -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:
Expand Down
35 changes: 0 additions & 35 deletions vars/main.yml

This file was deleted.

16 changes: 1 addition & 15 deletions vars/redhat-7.yml
Expand Up @@ -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
9 changes: 2 additions & 7 deletions vars/suse-42.yml
Expand Up @@ -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
22 changes: 2 additions & 20 deletions vars/ubuntu-16.04.yml
Expand Up @@ -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.
Expand All @@ -119,4 +101,4 @@ _galera_repo:

galera_wsrep_provider: "/usr/lib/galera/libgalera_smm.so"

_use_percona_upstream: no
_use_percona_upstream: yes

0 comments on commit dbbcb56

Please sign in to comment.