Merge "Install MariaDB 10.1 server"
This commit is contained in:
commit
3a8ea7d81a
@ -42,6 +42,8 @@ galera_force_change_cluster_name: False
|
||||
galera_server_distro_package_pins: []
|
||||
galera_debconf_items: []
|
||||
galera_server_percona_distro_packages: []
|
||||
galera_mariadb_server_package: "{{ _galera_mariadb_server_package }}"
|
||||
galera_repo_url: "{{ _galera_repo_url }}"
|
||||
|
||||
|
||||
galera_existing_cluster: true
|
||||
@ -101,5 +103,3 @@ galera_debian_cnf_overrides: {}
|
||||
# the cluster will be used which is something to note if deploying galera on different
|
||||
# hardware.
|
||||
# galera_max_connections: 500
|
||||
|
||||
using_mysql_init: no
|
||||
|
@ -18,7 +18,7 @@ galaxy_info:
|
||||
description: Installation galera server
|
||||
company: Rackspace
|
||||
license: Apache2
|
||||
min_ansible_version: 1.9
|
||||
min_ansible_version: 2.1
|
||||
platforms:
|
||||
- name: Ubuntu
|
||||
versions:
|
||||
|
@ -0,0 +1,10 @@
|
||||
---
|
||||
upgrade:
|
||||
- The galera_server role now installs MariaDB server version 10.1.
|
||||
- For systems using the APT package manager, the sources files for
|
||||
the MariaDB and Percona repos now have consistent names,
|
||||
'MariaDB.list' and 'Percona.list'.
|
||||
- The ``galera_mariadb_apt_server_package`` and ``galera_mariadb_yum_server_package``
|
||||
variables have been renamed to ``galera_mariadb_server_package``.
|
||||
- The ``galera_apt_repo_url`` and ``galera_yum_repo_url`` variables have been renamed
|
||||
to ``galera_repo_url``.
|
@ -18,27 +18,40 @@
|
||||
num_retries: 1
|
||||
wait_delay: 3
|
||||
|
||||
- name: Start galera cluster
|
||||
command: galera_new_cluster
|
||||
when:
|
||||
- ansible_service_mgr == 'systemd'
|
||||
- inventory_hostname == galera_server_bootstrap_node
|
||||
- mysql_running.rc != 0
|
||||
register: start_cluster
|
||||
failed_when: false
|
||||
tags:
|
||||
- galera-bootstrap
|
||||
|
||||
# TODO: Remove this task after 10.0 is removed from upgrade path
|
||||
- name: Start cluster with wsrep init fallback
|
||||
command: "/etc/init.d/mysql bootstrap"
|
||||
when:
|
||||
- ansible_service_mgr == 'systemd'
|
||||
- start_cluster | failed
|
||||
- inventory_hostname == galera_server_bootstrap_node
|
||||
- mysql_running.rc != 0
|
||||
tags:
|
||||
- galera-bootstrap
|
||||
|
||||
- name: Start cluster with wsrep
|
||||
service:
|
||||
name: mysql
|
||||
state: restarted
|
||||
arguments: "--wsrep-new-cluster"
|
||||
when:
|
||||
- not using_mysql_init | bool
|
||||
- ansible_service_mgr != 'systemd'
|
||||
- inventory_hostname == galera_server_bootstrap_node
|
||||
- mysql_running.rc != 0
|
||||
tags:
|
||||
- galera-bootstrap
|
||||
|
||||
- name: Start cluster with wsrep init
|
||||
command: "/etc/init.d/mysql bootstrap"
|
||||
when:
|
||||
- inventory_hostname == galera_server_bootstrap_node
|
||||
- mysql_running.rc != 0
|
||||
- using_mysql_init | bool
|
||||
tags:
|
||||
- galera-bootstrap
|
||||
|
||||
- name: Wait for operational state
|
||||
command: mysql --silent --skip-column-names -e 'SHOW STATUS LIKE "wsrep_evs_state"'
|
||||
register: galera_check_wait
|
||||
@ -62,3 +75,8 @@
|
||||
tags:
|
||||
- galera-operational
|
||||
- galera-bootstrap
|
||||
|
||||
- include: galera_upgrade_post.yml
|
||||
static: no
|
||||
when:
|
||||
- galera_upgrade | bool
|
||||
|
@ -58,29 +58,39 @@
|
||||
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: "{{ item.repo }}"
|
||||
state: "{{ item.state }}"
|
||||
repo: "{{ galera_repo.repo }}"
|
||||
filename: MariaDB
|
||||
state: "{{ galera_repo.state }}"
|
||||
register: add_repos
|
||||
until: add_repos|success
|
||||
retries: 5
|
||||
delay: 2
|
||||
with_items:
|
||||
- "{{ galera_repo }}"
|
||||
tags:
|
||||
- galera-repos
|
||||
|
||||
- name: Add percona repo
|
||||
apt_repository:
|
||||
repo: "{{ item.repo }}"
|
||||
state: "{{ item.state }}"
|
||||
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
|
||||
with_items:
|
||||
- "{{ galera_percona_xtrabackup_repo }}"
|
||||
when: use_percona_upstream | bool
|
||||
tags:
|
||||
- percona-repos
|
||||
|
@ -54,26 +54,18 @@
|
||||
tags:
|
||||
- galera-gpg-keys
|
||||
|
||||
#TODO(cloudnull) Remove this task once we move to Ansible 2.1
|
||||
# where we can leverage the `yum_repository` module:
|
||||
# https://docs.ansible.com/ansible/yum_repository_module.html
|
||||
- name: Add galera repo
|
||||
copy:
|
||||
content: |
|
||||
[{{ item.name }}]
|
||||
name={{ item.name }}
|
||||
description={{ item.description }}
|
||||
baseurl={{ item.baseurl }}
|
||||
gpgkey={{ item.gpgkey }}
|
||||
gpgcheck=1
|
||||
enabled=1
|
||||
dest: "/etc/yum.repos.d/{{ item.file }}.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
|
||||
with_items:
|
||||
- "{{ galera_repo }}"
|
||||
tags:
|
||||
- galera-repos
|
||||
|
||||
|
@ -63,20 +63,16 @@
|
||||
dest: /etc/init.d/mysql
|
||||
state: present
|
||||
insertafter: '^export HOME=/etc/mysql/'
|
||||
line: '[ -r /etc/default/mysql ] && . /etc/default/mysql'
|
||||
line: '[ -r /etc/default/mariadb ] && . /etc/default/mariadb'
|
||||
backup: yes
|
||||
tags:
|
||||
- galera-config
|
||||
|
||||
# NOTE: (mancdaz) REMOVE "/etc/default/mysql" when running MariaDB 10.1
|
||||
- name: Apply service defaults
|
||||
template:
|
||||
src: "mysql_defaults.j2"
|
||||
dest: "{{ item }}"
|
||||
dest: "/etc/default/mariadb"
|
||||
mode: "0644"
|
||||
with_items:
|
||||
- /etc/default/mysql
|
||||
- /etc/default/mariadb
|
||||
notify:
|
||||
- Restart mysql
|
||||
- Reload the systemd daemon
|
||||
@ -104,11 +100,14 @@
|
||||
when:
|
||||
- ansible_service_mgr == 'systemd'
|
||||
|
||||
- name: Apply resource limits (systemd)
|
||||
- name: Apply systemd options
|
||||
template:
|
||||
src: "systemd.limits.conf.j2"
|
||||
dest: "/etc/systemd/system/mariadb.service.d/limits.conf"
|
||||
src: "{{ item.src }}"
|
||||
dest: "/etc/systemd/system/mariadb.service.d/{{ item.dest }}"
|
||||
mode: "0644"
|
||||
with_items:
|
||||
- { src: "systemd.limits.conf.j2", dest: "limits.conf" }
|
||||
- { src: "systemd.timeout.conf.j2", dest: "timeout.conf" }
|
||||
when:
|
||||
- ansible_service_mgr == 'systemd'
|
||||
notify:
|
||||
@ -123,8 +122,3 @@
|
||||
state: absent
|
||||
tags:
|
||||
- galera-config
|
||||
|
||||
- include: galera_upgrade_post.yml
|
||||
static: no
|
||||
when:
|
||||
- galera_upgrade | bool
|
||||
|
@ -14,7 +14,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
- name: Check major galera install version
|
||||
command: "dpkg -s {{ galera_mariadb_apt_server_package }}"
|
||||
command: "dpkg -s {{ galera_mariadb_server_package }}"
|
||||
failed_when: false
|
||||
register: installed_galera_specific
|
||||
when:
|
||||
|
@ -14,7 +14,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
- name: Check major galera install version
|
||||
command: "rpm -qi '{{ galera_mariadb_yum_server_package }}'"
|
||||
command: "rpm -qi '{{ galera_mariadb_server_package }}'"
|
||||
failed_when: false
|
||||
register: installed_galera_specific
|
||||
when:
|
||||
@ -27,7 +27,7 @@
|
||||
|
||||
- name: Check for any galera install version
|
||||
shell: |
|
||||
rpm -qa | grep -i "{{ galera_mariadb_yum_server_package }}"
|
||||
rpm -qa | grep -i "{{ galera_mariadb_server_package }}"
|
||||
failed_when: false
|
||||
register: installed_galera_any
|
||||
when:
|
||||
|
@ -13,22 +13,10 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# This is starting MySQL as it may be required to restart the service more than
|
||||
# once to get it to clean up old service files from the previous version.
|
||||
# If the service fails to start after 3 attempts the shell command will be failed.
|
||||
- name: Start MySQL
|
||||
shell: |
|
||||
for i in {1..3}; do
|
||||
/etc/init.d/mysql start || true
|
||||
if pgrep mysqld; then
|
||||
exit 0
|
||||
else
|
||||
sleep 2
|
||||
fi
|
||||
done
|
||||
echo "Service failed to start"
|
||||
exit 1
|
||||
changed_when: false
|
||||
service:
|
||||
name: mysql
|
||||
state: started
|
||||
tags:
|
||||
- galera-upgrade
|
||||
|
||||
|
@ -30,10 +30,22 @@
|
||||
tags:
|
||||
- galera-upgrade
|
||||
|
||||
# Stop through the init script in case the service
|
||||
# was initially started outside of systemctl.
|
||||
- name: Stop mysql
|
||||
command: /etc/init.d/mysql stop
|
||||
changed_when: false
|
||||
tags:
|
||||
- galera-upgrade
|
||||
|
||||
# TODO: Remove the following three tasks in Pike
|
||||
# They're only required during upgrades transitioning to a
|
||||
# statically named apt sources file.
|
||||
- name: Find old sources
|
||||
command: >
|
||||
grep -rnil maria /etc/apt/sources.list.d/*
|
||||
grep -rnil maria /etc/apt/sources.list.d/ --exclude MariaDB.list
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
register: old_sources
|
||||
tags:
|
||||
- galera-upgrade
|
||||
@ -45,8 +57,8 @@
|
||||
state: absent
|
||||
with_items: "{{ old_sources.stdout_lines | default([]) }}"
|
||||
tags:
|
||||
- galera-upgrade
|
||||
- galera-apt-packages
|
||||
- galera-upgrade
|
||||
- galera-apt-packages
|
||||
|
||||
- name: Update apt sources (Forced)
|
||||
apt:
|
||||
@ -63,11 +75,15 @@
|
||||
- galera-apt-packages
|
||||
|
||||
- name: UN-Install galera-server package
|
||||
apt:
|
||||
pkg: "mariadb-galera-server*"
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: absent
|
||||
when:
|
||||
- ansible_pkg_mgr == 'apt'
|
||||
with_items:
|
||||
- "mariadb-galera-server*"
|
||||
- "mariadb-server*"
|
||||
- MariaDB-Galera-server
|
||||
- MariaDB-server
|
||||
- mysql-common
|
||||
tags:
|
||||
- galera-upgrade
|
||||
- galera-apt-packages
|
||||
|
@ -1,6 +1,8 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
[mysqld]
|
||||
wsrep_on = ON
|
||||
|
||||
# Path to Galera library
|
||||
wsrep_provider = /usr/lib/galera/libgalera_smm.so
|
||||
{% if galera_wsrep_provider_options is defined %}
|
||||
|
@ -8,7 +8,7 @@
|
||||
{%- set calculated_min_connections = all_calculated_max_connections | min %}
|
||||
{%- set calculated_max_connections = galera_max_connections | default(calculated_min_connections) %}
|
||||
|
||||
# How long to wait for successfull mysql startup
|
||||
# How long to wait for successful mysql startup
|
||||
# Startup can take a while if it requires a galera state transfer.
|
||||
MYSQLD_STARTUP_TIMEOUT=1800
|
||||
|
||||
|
6
templates/systemd.timeout.conf.j2
Normal file
6
templates/systemd.timeout.conf.j2
Normal file
@ -0,0 +1,6 @@
|
||||
# {{ ansible_managed }}
|
||||
|
||||
[Service]
|
||||
# How long to wait for successful mysql startup
|
||||
# Startup can take a while if it requires a galera state transfer.
|
||||
TimeoutStartSec=1800
|
22
tests/galera_server-overrides.yml
Normal file
22
tests/galera_server-overrides.yml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
# 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.
|
||||
|
||||
galera_server_old_package:
|
||||
debian:
|
||||
galera_mariadb_server_package: "mariadb-galera-server-10.0"
|
||||
galera_repo_url: "http://mirror.rackspace.com/mariadb/repo/10.0/ubuntu"
|
||||
redhat:
|
||||
galera_mariadb_server_package: "MariaDB-Galera-server"
|
||||
galera_repo_url: "http://yum.mariadb.org/10.0/centos/7/x86_64"
|
@ -19,8 +19,19 @@
|
||||
# Prepare the containers
|
||||
- include: common/test-prepare-containers.yml
|
||||
|
||||
# Install Galera server
|
||||
# Install previous version Galera server
|
||||
- include: common/test-install-galera.yml
|
||||
vars:
|
||||
galera_mariadb_server_package: "{{ galera_server_old_package[ansible_os_family | lower]['galera_mariadb_server_package'] }}"
|
||||
galera_repo_url: "{{ galera_server_old_package[ansible_os_family | lower]['galera_repo_url'] }}"
|
||||
|
||||
# Run functional tests
|
||||
- include: test-galera-server-functional.yml
|
||||
|
||||
# Install current version Galera server
|
||||
- include: common/test-install-galera.yml
|
||||
vars:
|
||||
galera_upgrade: true
|
||||
|
||||
# Re-run functional tests
|
||||
- include: test-galera-server-functional.yml
|
||||
|
@ -28,24 +28,22 @@ galera_server_required_distro_packages:
|
||||
- MariaDB-client
|
||||
- MariaDB-devel
|
||||
|
||||
galera_mariadb_yum_server_package: "MariaDB-Galera-server"
|
||||
_galera_mariadb_server_package: "MariaDB-server"
|
||||
|
||||
galera_server_mariadb_distro_packages:
|
||||
- which
|
||||
- "{{ galera_mariadb_yum_server_package }}"
|
||||
- "{{ galera_mariadb_server_package }}"
|
||||
- MariaDB-shared
|
||||
- percona-xtrabackup
|
||||
- percona-toolkit
|
||||
- rsync
|
||||
- socat
|
||||
|
||||
galera_yum_repo_url: "http://yum.mariadb.org/10.0/centos/7/x86_64"
|
||||
_galera_repo_url: "http://yum.mariadb.org/10.1/centos/7/x86_64"
|
||||
galera_repo:
|
||||
state: "present"
|
||||
name: MariaDB
|
||||
description: "MariaDB Repo"
|
||||
file: MariaDB
|
||||
baseurl: "{{ galera_yum_repo_url }}"
|
||||
baseurl: "{{ galera_repo_url }}"
|
||||
gpgkey: "https://yum.mariadb.org/RPM-GPG-KEY-MariaDB"
|
||||
|
||||
galera_percona_xtrabackup_repo:
|
||||
@ -79,4 +77,3 @@ qpress_arch_sha256:
|
||||
x86_64: "d6b6b7ca3a5ad4baea34975743106ac54ac746b3e6497d59bce55765d604b697"
|
||||
|
||||
use_percona_upstream: yes
|
||||
using_mysql_init: yes
|
||||
|
@ -44,7 +44,7 @@ galera_server_required_distro_packages:
|
||||
# The package name for mariaDB is set as a variable
|
||||
# so that it can be used in debconf later in the
|
||||
# "galera_common" role.
|
||||
galera_mariadb_apt_server_package: "mariadb-galera-server-10.0"
|
||||
_galera_mariadb_server_package: "mariadb-server-10.1"
|
||||
|
||||
# NB This is specifically galera_server_mariadb_distro_packages as these
|
||||
# packages only get installed during the galera play - this is because of
|
||||
@ -53,18 +53,18 @@ galera_mariadb_apt_server_package: "mariadb-galera-server-10.0"
|
||||
galera_server_mariadb_distro_packages:
|
||||
- libmariadbclient-dev
|
||||
- mariadb-client
|
||||
- "{{ galera_mariadb_apt_server_package }}"
|
||||
- "{{ galera_mariadb_server_package }}"
|
||||
- galera-3
|
||||
- rsync
|
||||
- socat
|
||||
|
||||
galera_debconf_items:
|
||||
- question: "mysql-server/root_password"
|
||||
name: "{{ galera_mariadb_apt_server_package }}"
|
||||
name: "{{ galera_mariadb_server_package }}"
|
||||
value: "{{ galera_root_password }}"
|
||||
vtype: "string"
|
||||
- question: "mysql-server/root_password_again"
|
||||
name: "{{ galera_mariadb_apt_server_package }}"
|
||||
name: "{{ galera_mariadb_server_package }}"
|
||||
value: "{{ galera_root_password }}"
|
||||
vtype: "string"
|
||||
|
||||
@ -100,10 +100,9 @@ galera_percona_xtrabackup_repo:
|
||||
repo: "deb {{ galera_percona_xtrabackup_repo_url }} {{ ansible_distribution_release }} main"
|
||||
state: "present"
|
||||
|
||||
galera_apt_repo_url: "http://mirror.rackspace.com/mariadb/repo/10.0/ubuntu"
|
||||
_galera_repo_url: "http://mirror.rackspace.com/mariadb/repo/10.1/ubuntu"
|
||||
galera_repo:
|
||||
repo: "deb {{ galera_apt_repo_url }} {{ ansible_distribution_release }} main"
|
||||
repo: "deb {{ galera_repo_url }} {{ ansible_distribution_release }} main"
|
||||
state: "present"
|
||||
|
||||
use_percona_upstream: no
|
||||
using_mysql_init: no
|
||||
|
@ -44,7 +44,7 @@ galera_server_required_distro_packages:
|
||||
# The package name for mariaDB is set as a variable
|
||||
# so that it can be used in debconf later in the
|
||||
# "galera_common" role.
|
||||
galera_mariadb_apt_server_package: "mariadb-galera-server-10.0"
|
||||
_galera_mariadb_server_package: "mariadb-server-10.1"
|
||||
|
||||
# NB This is specifically galera_server_mariadb_distro_packages as these
|
||||
# packages only get installed during the galera play - this is because of
|
||||
@ -53,18 +53,18 @@ galera_mariadb_apt_server_package: "mariadb-galera-server-10.0"
|
||||
galera_server_mariadb_distro_packages:
|
||||
- libmariadbclient-dev
|
||||
- mariadb-client
|
||||
- "{{ galera_mariadb_apt_server_package }}"
|
||||
- "{{ galera_mariadb_server_package }}"
|
||||
- galera-3
|
||||
- rsync
|
||||
- socat
|
||||
|
||||
galera_debconf_items:
|
||||
- question: "mysql-server/root_password"
|
||||
name: "{{ galera_mariadb_apt_server_package }}"
|
||||
name: "{{ galera_mariadb_server_package }}"
|
||||
value: "{{ galera_root_password }}"
|
||||
vtype: "string"
|
||||
- question: "mysql-server/root_password_again"
|
||||
name: "{{ galera_mariadb_apt_server_package }}"
|
||||
name: "{{ galera_mariadb_server_package }}"
|
||||
value: "{{ galera_root_password }}"
|
||||
vtype: "string"
|
||||
|
||||
@ -99,16 +99,14 @@ qpress_arch_sha256:
|
||||
ppc64le: "a31d3e00dbcec9b3f98eae82b261d054d0b80a57f4a38967d0e953811cb082f3"
|
||||
|
||||
# Repositories
|
||||
# TODO: update this to xenial if the repo ever gets created.
|
||||
galera_percona_xtrabackup_repo_url: "http://repo.percona.com/apt"
|
||||
galera_percona_xtrabackup_repo:
|
||||
repo: "deb {{ galera_percona_xtrabackup_repo_url }} {{ ansible_distribution_release }} main"
|
||||
state: "present"
|
||||
|
||||
galera_apt_repo_url: "http://mirror.rackspace.com/mariadb/repo/10.0/ubuntu"
|
||||
_galera_repo_url: "http://mirror.rackspace.com/mariadb/repo/10.1/ubuntu"
|
||||
galera_repo:
|
||||
repo: "deb {{ galera_apt_repo_url }} {{ ansible_distribution_release }} main"
|
||||
repo: "deb {{ galera_repo_url }} {{ ansible_distribution_release }} main"
|
||||
state: "present"
|
||||
|
||||
use_percona_upstream: no
|
||||
using_mysql_init: yes
|
||||
|
Loading…
x
Reference in New Issue
Block a user