🚀 Manage Galera

This commit is contained in:
Emilien Mantel
2024-08-27 11:24:51 +02:00
committed by Emilien M
parent cdfd71ce76
commit c32411c6e4
12 changed files with 111 additions and 62 deletions

View File

@@ -1,4 +1,5 @@
---
- name: SET_FACT | Prepare mark var
ansible.builtin.set_fact:
__mark: "{{ mariadb_datadir }}/.ansible_galera_boostrap"

View File

@@ -2,31 +2,20 @@
- name: APT | Install Galera
ansible.builtin.apt:
pkg: "{{ mariadb_galera_package_name }}"
name: "{{ mariadb_galera_package_name }}"
- name: TEMPLATE | Deploy Galera configuration
ansible.builtin.template:
src: etc/mysql/mariadb.conf.d/20-galera.cnf.j2
dest: /etc/mysql/mariadb.conf.d/20-galera.cnf
src: etc/mysql/mariadb.conf.d/60-galera.cnf.j2
dest: /etc/mysql/mariadb.conf.d/60-galera.cnf
mode: 0644
owner: root
group: root
register: galeraconfig
notify: Restart mariadb
- name: INCLUDE | Bootstrap first node
ansible.builtin.import_tasks: 'bootstrap.yml'
when: inventory_hostname == mariadb_galera_primary_node
- name: INCLUDE | Configure other nodes
ansible.builtin.import_tasks: 'nodes.yml'
when: inventory_hostname != mariadb_galera_primary_node
- name: SERVICE | Restart MariaDB if needed
ansible.builtin.service:
name: "{{ mariadb_service_name }}"
state: restarted
when:
((galeraconfig or (p is defined and p.changed)) and
(bootstrap_run is not defined)) or
((inventory_hostname != mariadb_galera_primary_node) and
(mariadb_galera_resetup))
- name: META | Flush handlers
ansible.builtin.meta: flush_handlers

View File

@@ -1,35 +0,0 @@
---
- name: COMMAND | GET debian.cnf from primary node
ansible.builtin.command: cat /etc/mysql/debian.cnf
register: debiancnf
delegate_to: '{{ mariadb_galera_primary_node }}'
changed_when: false
- name: COMMAND | Get current debian.cnf
ansible.builtin.command: cat /etc/mysql/debian.cnf
register: ondc
changed_when: false
- name: BLOCK | Compare debian.cnf
when: debiancnf.stdout != ondc.stdout
block:
- name: SERVICE | Stop MariaDB
ansible.builtin.service:
name: "{{ mariadb_service_name }}"
state: stopped
- name: COPY | Paste primary node's debian.cnf
ansible.builtin.copy:
content: "{{ debiancnf.stdout }}"
dest: /etc/mysql/debian.cnf
mode: 0600
owner: root
group: root
register: paste
- name: SERVICE | Start MariaDB
ansible.builtin.service:
name: "{{ mariadb_service_name }}"
state: started