The role was changed to make it compatible with the OpenStack CI. The changes effect defaults, handlers, and the tests for the role and adds gitignore/review files. The changes essentially get the role to a state where its passing the tests which are spinning up a galera cluster, adding users and databases, and then testing integrity from every node. The tests specifically ensure we're able to guarantee that after the role runs everything works. Previously to these changes the role assumed everything was working and nothing had been done to guarantee cluster state. In the handler changes, the temporary "sst" directory is cleaned up should the handler restart fail. This ensure that a node is in a clean state if a leftover sst directory was on the disk which would cause a node to fail to join a cluster or bootstrap. Additionally the environment variable "MYSQLD_STARTUP_TIMEOUT" is now being passed into the init script because the defaults are not being sourced at the init script runtime. In the task changes a new configuration file, that is part of the mariadb package, is being removed which has unforeseen options within it causing no logs to be created. the default option "galera_innodb_additional_mem_pool_size" was removed because its no longer valid within MariaDB10 and we'd never caught that error message until now. The tests were updated to support running the role from a user which was not root. Change-Id: I16af30c660790656fc2d59f9943c172b88098905 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
48 lines
1.5 KiB
YAML
48 lines
1.5 KiB
YAML
---
|
|
# Copyright 2015, 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: Restart mysql
|
|
service:
|
|
name: mysql
|
|
state: restarted
|
|
args: "{{ (not galera_existing_cluster | bool and inventory_hostname == galera_server_bootstrap_node) | ternary('--wsrep-new-cluster', '') }}"
|
|
environment:
|
|
MYSQLD_STARTUP_TIMEOUT: 180
|
|
when: not galera_running_and_bootstrapped | bool
|
|
register: galera_restart
|
|
failed_when: false
|
|
notify:
|
|
- "remove stale .sst"
|
|
- "Restart mysql fall back"
|
|
|
|
- name: remove stale .sst
|
|
file:
|
|
path: "/var/lib/mysql/.sst"
|
|
state: absent
|
|
when: galera_restart | failed
|
|
|
|
- name: Restart mysql fall back
|
|
service:
|
|
name: mysql
|
|
state: restarted
|
|
args: "{{ (not galera_existing_cluster | bool and inventory_hostname == galera_server_bootstrap_node) | ternary('--wsrep-new-cluster', '') }}"
|
|
environment:
|
|
MYSQLD_STARTUP_TIMEOUT: 180
|
|
when: galera_restart | failed
|
|
register: galera_restart_fall_back
|
|
until: galera_restart_fall_back | success
|
|
retries: 3
|
|
delay: 5
|