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