
Update repos and packages to install the server for MariaDB 10.1, the current stable release. Several improvements have been made to improve the upgrade process and an upgrade from 10.0 has been included in the test playbooks. Make use of the yum_repository module for installing on yum based systems and give the apt repository files consistent names, 'MariaDB' and 'Percona' for easier maintenance and handling of upgrades going forward. Depends-On: I8939703f26e5d8adc393b984266f4cad7a6e0b4c Change-Id: Ib6409f1fcf4a664b65dbe01372a19509d02d70a4
163 lines
4.2 KiB
YAML
163 lines
4.2 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: Install galera apt pre packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: "{{ galera_server_package_state }}"
|
|
update_cache: yes
|
|
cache_valid_time: "{{ cache_timeout }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: "{{ galera_server_required_distro_packages }}"
|
|
tags:
|
|
- galera-pre-apt-packages
|
|
|
|
- name: Add galera apt-keys
|
|
apt_key:
|
|
id: "{{ item.hash_id }}"
|
|
keyserver: "{{ item.keyserver | default(omit) }}"
|
|
data: "{{ item.data | default(omit) }}"
|
|
url: "{{ item.url | default(omit) }}"
|
|
state: "present"
|
|
register: add_keys
|
|
until: add_keys|success
|
|
failed_when: false
|
|
retries: 5
|
|
delay: 2
|
|
with_items: "{{ galera_gpg_keys }}"
|
|
tags:
|
|
- galera-apt-keys
|
|
|
|
- name: Add galera apt-keys using fallback keyserver
|
|
apt_key:
|
|
id: "{{ item.hash_id }}"
|
|
keyserver: "{{ item.fallback_keyserver | default(omit) }}"
|
|
url: "{{ item.fallback_url | default(omit) }}"
|
|
state: "present"
|
|
register: add_keys_fallback
|
|
until: add_keys_fallback|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: "{{ galera_gpg_keys }}"
|
|
when: add_keys|failed and (item.fallback_keyserver is defined or item.fallback_url is defined)
|
|
tags:
|
|
- galera-apt-keys
|
|
|
|
- name: Remove old repos
|
|
lineinfile:
|
|
dest: "/etc/apt/sources.list.d/{{ item.name }}.list"
|
|
regexp: "^((?!{{ item.repo }}).*)$"
|
|
state: absent
|
|
with_items:
|
|
- { name: "MariaDB", repo: "{{ galera_repo.repo }}" }
|
|
- { name: "Percona", repo: "{{ galera_percona_xtrabackup_repo.repo }}" }
|
|
tags:
|
|
- galera-client-repos
|
|
- percona-repos
|
|
|
|
- name: Add galera repo
|
|
apt_repository:
|
|
repo: "{{ galera_repo.repo }}"
|
|
filename: MariaDB
|
|
state: "{{ galera_repo.state }}"
|
|
register: add_repos
|
|
until: add_repos|success
|
|
retries: 5
|
|
delay: 2
|
|
tags:
|
|
- galera-repos
|
|
|
|
- name: Add percona repo
|
|
apt_repository:
|
|
repo: "{{ galera_percona_xtrabackup_repo.repo }}"
|
|
filename: Percona
|
|
state: "{{ galera_percona_xtrabackup_repo.state }}"
|
|
register: add_repos
|
|
until: add_repos|success
|
|
retries: 5
|
|
delay: 2
|
|
when: use_percona_upstream | bool
|
|
tags:
|
|
- percona-repos
|
|
|
|
- name: Preseed galera password(s)
|
|
debconf:
|
|
name: "{{ item.name }}"
|
|
question: "{{ item.question }}"
|
|
value: "{{ item.value }}"
|
|
vtype: "{{ item.vtype }}"
|
|
with_items: "{{ galera_debconf_items }}"
|
|
tags:
|
|
- galera-debconf
|
|
|
|
- name: Prevent galera from starting on install
|
|
copy:
|
|
src: "policy-rc.d"
|
|
dest: "/usr/sbin/policy-rc.d"
|
|
mode: "0755"
|
|
backup: yes
|
|
tags:
|
|
- galera-config
|
|
|
|
- name: Install galera packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: "{{ galera_server_package_state }}"
|
|
update_cache: yes
|
|
cache_valid_time: "{{ add_repos | changed | ternary('0', cache_timeout) }}"
|
|
register: install_packages
|
|
until: install_packages|success
|
|
retries: 5
|
|
delay: 2
|
|
with_items: "{{ galera_server_mariadb_distro_packages }}"
|
|
notify: Restart mysql
|
|
tags:
|
|
- galera-apt-packages
|
|
|
|
- name: Install percona-xtrabackup package from .deb
|
|
apt:
|
|
deb: "{{ percona_package_path }}"
|
|
force: yes
|
|
when: not use_percona_upstream | bool
|
|
tags:
|
|
- percona-apt-packages
|
|
|
|
- name: Install qpress package from .deb
|
|
apt:
|
|
deb: "{{ qpress_package_path }}"
|
|
force: yes
|
|
when: not use_percona_upstream | bool
|
|
tags:
|
|
- percona-apt-packages
|
|
|
|
- name: Install percona packages
|
|
apt:
|
|
pkg: "{{ item }}"
|
|
state: installed
|
|
with_items: "{{ galera_server_percona_distro_packages }}"
|
|
when: use_percona_upstream | bool
|
|
tags:
|
|
- percona-apt-packages
|
|
|
|
- name: Remove policy-rc
|
|
file:
|
|
path: "/usr/sbin/policy-rc.d"
|
|
state: absent
|
|
tags:
|
|
- galera-config
|