Install xinetd clustercheck after mariadb is installed and setup

The configuration of mariadb is done mostly in handlers and previously
the code would install the xinetd clustercheck script before calling
flush_handlers to bootstrap and initialise the database. This leads
to a situation where the clustercheck may be attempting to interact
with the database during bootstrapping and before the monitoring user
has been created.

This change moves the setup tasks for the clustercheck service until
after the database has been bootstrapped and the users created. This
means that any healthchecks from the loadbalancer will not be seen by
the database until after the setup is completed during the initial
deployment.

Change-Id: Ibd55306a5c17bc0a4333e43725f1637420a2c9d9
This commit is contained in:
Jonathan Rosser 2021-02-10 18:05:41 +00:00
parent ec58c1d6cc
commit 3d07a246d5
3 changed files with 42 additions and 40 deletions

View File

@ -92,6 +92,12 @@
tags:
- galera_server-config
- include_tasks: tasks/galera_server_xinetd.yml
tags:
- galera_server-config
when:
- galera_monitoring_check_enabled | bool
- include_tasks: galera_server_backups.yml
when:
- galera_mariadb_backups_enabled | bool

View File

@ -166,43 +166,3 @@
src: "galera_new_cluster.j2"
dest: "/usr/local/bin/galera_new_cluster"
mode: "0750"
# TODO: (nicolasbock) This task can be removed in T but is necessary
# for S and earlier because deployments prior to this change will not
# have the xinetd service enabled because the handler task runs only
# for new deployments.
# NOTE(cloudnull): If `galera_monitoring_check_enabled` is set false
# the xinetd service will be disabled and stopped.
# using the handler.
- name: Enable xinetd service
service:
name: xinetd
enabled: "{{ galera_monitoring_check_enabled | bool }}"
notify:
- Restart xinetd
- name: Cluster check block
block:
- name: Create clustercheck script
template:
src: "clustercheck.j2"
dest: "/usr/local/bin/clustercheck"
mode: "0755"
- name: Create mysqlchk config
template:
src: "mysqlchk.j2"
dest: "/etc/xinetd.d/mysqlchk"
mode: "0644"
notify:
- Restart xinetd
- name: Add galera service check to services
lineinfile:
dest: /etc/services
state: present
regexp: '^mysqlchk'
line: 'mysqlchk 9200/tcp # MySQL check'
backup: yes
when:
- galera_monitoring_check_enabled | bool

View File

@ -0,0 +1,36 @@
---
# Copyright 2021, BBC
#
# 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: Create clustercheck script
template:
src: "clustercheck.j2"
dest: "/usr/local/bin/clustercheck"
mode: "0755"
- name: Create mysqlchk config
template:
src: "mysqlchk.j2"
dest: "/etc/xinetd.d/mysqlchk"
mode: "0644"
notify:
- Restart xinetd
- name: Add galera service check to services
lineinfile:
dest: /etc/services
state: present
regexp: '^mysqlchk'
line: 'mysqlchk 9200/tcp # MySQL check'
backup: yes