Manages MariaDB 10.6 + Debian 11
parent
860b212ee0
commit
79d6ed7966
defaults
handlers
meta
tasks
install/mariadb
replication/slave
tests
vars
|
@ -8,7 +8,10 @@ Install and configure MariaDB (Galera Cluster). Manage replication (master/slave
|
|||
| OS | Origin | MariaDB versions |
|
||||
| --------------- | --------- | ------------------------- |
|
||||
| Debian Buster | Debian | 10.3 |
|
||||
| Debian Buster | Upstream | 10.3 / 10.4 |
|
||||
| Debian Buster | Upstream | 10.3 to 10.6 |
|
||||
| Debian Bullseye | Debian | 10.5 |
|
||||
| Debian Bullseye | Upstream | 10.5 to 10.6 |
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
|
|
@ -8,6 +8,9 @@ Vagrant.configure("2") do |config|
|
|||
vbox_deb_buster = 'debian/buster64'
|
||||
dk_deb_buster = 'hanxhx/vagrant-ansible:debian10'
|
||||
|
||||
vbox_deb_bullseye = 'debian/bullseye64'
|
||||
dk_deb_bullseye = 'hanxhx/vagrant-ansible:debian11'
|
||||
|
||||
config.hostmanager.enabled = true
|
||||
config.hostmanager.manage_host = false
|
||||
config.hostmanager.manage_guest = true
|
||||
|
@ -16,7 +19,7 @@ Vagrant.configure("2") do |config|
|
|||
|
||||
cases = [
|
||||
# ========================
|
||||
# Debian Buster
|
||||
# Debian Buster (10)
|
||||
# ========================
|
||||
|
||||
# Default replication
|
||||
|
@ -36,6 +39,29 @@ Vagrant.configure("2") do |config|
|
|||
{ os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '1'] },
|
||||
{ os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '2'] },
|
||||
{ os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '3'] },
|
||||
|
||||
# ========================
|
||||
# Debian Bullseye (11)
|
||||
# ========================
|
||||
|
||||
# Default replication
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: dk_deb_bullseye, vars: {mariadb_origin: 'default' }, groups: ['master'] },
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['slave'] },
|
||||
|
||||
# Upstream replication
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: dk_deb_bullseye, vars: {mariadb_origin: 'upstream' }, groups: ['master'] },
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['slave'] },
|
||||
|
||||
# Galera Debian
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: dk_deb_bullseye, vars: {mariadb_origin: 'default' }, groups: ['galera', '1'] },
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['galera', '2'] },
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['galera', '3'] },
|
||||
|
||||
# Galera Upstream
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: dk_deb_bullseye, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '1'] },
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '2'] },
|
||||
{ os_name: 'bullseye', vbox: vbox_deb_bullseye, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['galera', '3'] },
|
||||
|
||||
]
|
||||
|
||||
cases.each_with_index do |opts,index|
|
||||
|
@ -52,6 +78,11 @@ Vagrant.configure("2") do |config|
|
|||
d.remains_running = true
|
||||
d.has_ssh = true
|
||||
end
|
||||
|
||||
if opts[:os_name].include? "bullseye"
|
||||
m.vm.provision "shell", inline: "[ -f '/root/first_provision' ] || (apt-get update -qq && apt-get -y dist-upgrade && touch /root/first_provision)"
|
||||
end
|
||||
|
||||
m.vm.provision "ansible" do |ansible|
|
||||
ansible.playbook = "tests/test.yml"
|
||||
ansible.verbose = 'vv'
|
||||
|
@ -72,8 +103,13 @@ Vagrant.configure("2") do |config|
|
|||
m.vm.network "private_network", ip: ip
|
||||
m.vm.provider "virtualbox" do |v|
|
||||
v.cpus = 1
|
||||
v.memory = 256
|
||||
v.memory = 512
|
||||
end
|
||||
|
||||
if opts[:os_name].include? "bullseye"
|
||||
m.vm.provision "shell", inline: "[ -f '/root/first_provision' ] || (apt-get update -qq && apt-get -y dist-upgrade && touch /root/first_provision)"
|
||||
end
|
||||
|
||||
m.vm.provision "ansible" do |ansible|
|
||||
ansible.playbook = "tests/test.yml"
|
||||
ansible.verbose = 'vv'
|
||||
|
|
|
@ -116,7 +116,7 @@ mariadb_users: []
|
|||
# -------------------------------------
|
||||
# MariaDB
|
||||
# -------------------------------------
|
||||
mariadb_version: '10.3'
|
||||
mariadb_version: '10.6'
|
||||
mariadb_mirror_domain: "ftp.igh.cnrs.fr"
|
||||
# See: https://downloads.mariadb.org/mariadb/repositories
|
||||
mariadb_repository: "http://{{ mariadb_mirror_domain }}/pub/mariadb/repo/{{ mariadb_version }}/debian"
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
|
||||
- name: restart mariadb
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: restarted
|
||||
when: mariadb_notify_restart
|
||||
|
|
|
@ -9,6 +9,7 @@ galaxy_info:
|
|||
- name: Debian
|
||||
versions:
|
||||
- buster
|
||||
- bullseye
|
||||
galaxy_tags:
|
||||
- database
|
||||
- packaging
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
- name: SERVICE | Stop MariaDB
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: stopped
|
||||
|
||||
- name: COMMAND | Bootstrap first node (systemd)
|
||||
|
@ -24,7 +24,7 @@
|
|||
|
||||
- name: SERVICE | Bootstrap first node (clean init)
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: started
|
||||
arguments: --wsrep-new-cluster
|
||||
register: bootstrap_run
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
- name: SERVICE | Restart MariaDB if needed
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: restarted
|
||||
when:
|
||||
((galeraconfig or (p is defined and p.changed)) and
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
- name: SERVICE | Stop MariaDB
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: stopped
|
||||
|
||||
- name: COPY | Paste primary node's debian.cnf
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
- name: SERVICE | Start MariaDB
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: started
|
||||
|
||||
when: debiancnf.stdout != ondc.stdout
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
---
|
||||
|
||||
- name: APT | Install GPG
|
||||
apt:
|
||||
name: gpg
|
||||
|
||||
- name: APT_KEY | Install MariaDB key
|
||||
apt_key:
|
||||
keyserver: "{{ mariadb_key_server }}"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
|
||||
- name: INCLUDE_VARS | Related to OS version
|
||||
include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_release }}.yml"
|
||||
include_vars: "{{ ansible_distribution }}.yml"
|
||||
|
||||
- name: STAT | Check if mysql exists
|
||||
stat:
|
||||
|
@ -28,12 +28,17 @@
|
|||
- name: SERVICE | Restart Mariadb now one at a time (prevent bugs)
|
||||
throttle: 1
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: restarted
|
||||
when:
|
||||
config.changed and
|
||||
not mariadb_galera_resetup
|
||||
|
||||
- name: SERVICE | Ensure service is started
|
||||
service:
|
||||
name: mariadb
|
||||
state: started
|
||||
|
||||
- name: INCLUDE | Galera
|
||||
import_tasks: galera/main.yml
|
||||
when: mariadb_use_galera
|
||||
|
@ -45,11 +50,6 @@
|
|||
- name: INCLUDE | Secure install
|
||||
import_tasks: 'secure.yml'
|
||||
|
||||
- name: SERVICE | Ensure service is started
|
||||
service:
|
||||
name: mysql
|
||||
state: started
|
||||
|
||||
- name: MYSQL_DB | Create databases
|
||||
mysql_db:
|
||||
name: "{{ item }}"
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
- name: SERVICE | Stop MariaDB before importing data
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: stopped
|
||||
|
||||
# TODO: add an "ignore warning"
|
||||
|
@ -73,7 +73,7 @@
|
|||
|
||||
- name: SERVICE | Start MariaDB
|
||||
service:
|
||||
name: mysql
|
||||
name: mariadb
|
||||
state: started
|
||||
|
||||
- name: FILE | Delete dump
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
name: "{{ item }}"
|
||||
state: import
|
||||
target: /tmp/import1.sql
|
||||
login_unix_socket: "{{ mariadb_socket }}"
|
||||
loop: ['testrepl', 'norepl']
|
||||
when: c.changed
|
||||
|
||||
|
@ -73,6 +74,7 @@
|
|||
name: "{{ item }}"
|
||||
state: import
|
||||
target: /tmp/import2.sql
|
||||
login_unix_socket: "{{ mariadb_socket }}"
|
||||
loop: ['testrepl', 'norepl']
|
||||
when: c.changed
|
||||
|
||||
|
|
Loading…
Reference in New Issue