openstack-ansible-galera_se.../tasks/galera_install_apt.yml
Jimmy McCrory fdaf169e1e Install MariaDB 10.1 server
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
2016-11-30 10:48:30 -08:00

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