Do not recreate Galera cluster

Currently if the Galera master node is rebooted after installation process
a new Galera cluster is build because of the --wsrep-new-cluster present
in the systemd.service file. This commit aims to update this behavior
accordingly.

Closes-bug: #1439197
Change-Id: I3e4c339ea073bd18177bd0625d694ddd0151b14c
This commit is contained in:
Yanis Guenane 2015-04-08 12:11:57 +02:00
parent 9a53dcde20
commit 735a760c40
3 changed files with 34 additions and 2 deletions

View File

@ -0,0 +1,22 @@
#
# Copyright (C) 2014 eNovance SAS <licensing@enovance.com>
#
# 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.
#
# Fact: galera_bootstrapped
#
Facter.add('galera_bootstrapped') do
setcode do
FileTest.exists?('/var/lib/mysql/grastate.dat')
end
end

View File

@ -339,6 +339,11 @@ class cloud::database::sql::mysql (
if $::hostname == $galera_master_name {
$mysql_service_name = 'mysql-bootstrap'
if !str2bool($::galera_bootstrapped) {
$wsrep_new_cluster = '--wsrep-new-cluster'
} else {
$wsrep_new_cluster = ''
}
} else {
$mysql_service_name = 'mariadb'
}
@ -424,12 +429,17 @@ class cloud::database::sql::mysql (
# To check that the mysqld support the options you can :
# strings `which mysqld` | grep wsrep-new-cluster
# TODO: to be remove as soon as the API 25 is packaged, ie galera 3 ...
if $::osfamily == 'RedHat' and $::operatingsystemmajrelease >= 7 {
$mysql_service_notify = Exec['mariadb-sysctl-daemon-reload']
} else {
$mysql_service_notify = Service['mysqld']
}
file { $mysql_init_file :
content => template("cloud/database/etc_initd_mysql_${::osfamily}"),
owner => 'root',
mode => '0755',
group => 'root',
notify => Service['mysqld'],
notify => $mysql_service_notify,
before => Package[$mysql_server_package_name],
}

View File

@ -32,7 +32,7 @@ Group=mysql
ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
# per bug #547485
ExecStart=/usr/bin/mysqld_safe --wsrep-new-cluster --basedir=/usr
ExecStart=/usr/bin/mysqld_safe <%= @wsrep_new_cluster %> --basedir=/usr
ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID
# Give a reasonable amount of time for the server to start up/shut down