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
106 lines
3.3 KiB
YAML
106 lines
3.3 KiB
YAML
---
|
|
# 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: Update the local file system CRUD
|
|
file:
|
|
src: "{{ item.src|default(omit) }}"
|
|
path: "{{ item.path }}"
|
|
state: "{{ item.state }}"
|
|
force: "{{ item.force|default(omit) }}"
|
|
with_items:
|
|
- { path: "/etc/mysql", state: "directory" }
|
|
- { path: "/etc/mysql/conf.d", state: "directory" }
|
|
- { src: "/usr/lib64/galera", path: "/usr/lib/galera", state: "link", force: true }
|
|
- { src: "/etc/mysql/conf.d", path: "/etc/my.cnf.d", state: "link", force: true }
|
|
- { src: "/etc/mysql/my.cnf", path: "/etc/my.cnf", state: "link", force: true }
|
|
|
|
- name: Add galera gpg-keys
|
|
block:
|
|
- name: Add keys (primary keyserver)
|
|
rpm_key:
|
|
state: present
|
|
key: "{{ item.keyserver }}/{{ item.key_name }}"
|
|
register: add_keys
|
|
until: add_keys|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: "{{ galera_gpg_keys }}"
|
|
|
|
rescue:
|
|
- name: Add keys (fallback keyserver)
|
|
rpm_key:
|
|
state: present
|
|
key: "{{ item.fallback_keyserver }}/{{ item.key_name }}"
|
|
register: add_keys
|
|
until: add_keys|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: "{{ galera_gpg_keys }}"
|
|
when: item.fallback_keyserver is defined
|
|
|
|
- name: Add galera repo
|
|
yum_repository:
|
|
name: "{{ galera_repo.name }}"
|
|
description: "{{ galera_repo.description }}"
|
|
baseurl: "{{ galera_repo.baseurl }}"
|
|
gpgkey: "{{ galera_repo.gpgkey }}"
|
|
gpgcheck: yes
|
|
enabled: yes
|
|
register: add_repos
|
|
until: add_repos | 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.
|
|
# This is why we force the metadata to be
|
|
# cleaned out whenever the repo config changes.
|
|
- name: Force the expiry of the repo metadata
|
|
command: "{{ ansible_pkg_mgr }} clean metadata"
|
|
args:
|
|
warn: no
|
|
when: add_repos | changed
|
|
tags:
|
|
- skip_ansible_lint
|
|
|
|
- name: Install percona repo
|
|
package:
|
|
pkg: "{{ galera_percona_xtrabackup_repo.repo }}"
|
|
state: "{{ galera_percona_xtrabackup_repo.state }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
|
|
# 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.
|
|
# This task ensures that the following task will choose MariaDB/percona repos
|
|
# as the highest priority.
|
|
- name: Ensure MariaDB/percona repositories take highest priority
|
|
command: |
|
|
yum-config-manager
|
|
--enable {{ item }}
|
|
--setopt="{{ item }}.priority=25"
|
|
with_items:
|
|
- MariaDB
|
|
- percona-release-noarch
|
|
- percona-release-x86_64
|
|
|
|
- name: Install galera_server role remote packages
|
|
package:
|
|
name: "{{ galera_packages_list }}"
|
|
state: "{{ galera_server_package_state }}"
|