feat: setup galera cluster member profile
- add eyaml support for role - add /data volume for galera cluster members - create profiles::selinux namespace for defining selinux configuration - create profiles::selinux::mysqld for managing specifics for mysqld - create profiles::selinux::setenforce to manage selinux mode - parameterised options required in mysqld::server module - add mariadb repo - add additional facts for managing mysqld and galera
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# create a boolean for when the mariadb service is active
|
||||
require 'English'
|
||||
|
||||
Facter.add('mariadb_active') do
|
||||
setcode do
|
||||
system('systemctl is-active --quiet mariadb')
|
||||
$CHILD_STATUS.exitstatus.zero?
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,22 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# check if the /etc/my.cnf.d/server.cnf file exists,
|
||||
# open it and search for the 'datadir =' option
|
||||
# store the datadir value as this fact
|
||||
require 'facter'
|
||||
|
||||
Facter.add('mariadb_datapath') do
|
||||
setcode do
|
||||
if File.exist?('/etc/my.cnf.d/server.cnf')
|
||||
datadir = nil
|
||||
File.foreach('/etc/my.cnf.d/server.cnf') do |line|
|
||||
match = line.match(/^\s*datadir\s*=\s*(.+)\s*$/)
|
||||
if match
|
||||
datadir = match[1].strip
|
||||
break
|
||||
end
|
||||
end
|
||||
datadir
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,16 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# check if the mariadb server exists
|
||||
# check if the mariadb_datapath fact exists, else set /var/lib/mysql as the datapath
|
||||
# check if the galera grastate.dat file exists, identifying if galera is boostrapped
|
||||
require 'facter'
|
||||
|
||||
if system('systemctl is-active --quiet mariadb')
|
||||
|
||||
Facter.add('mariadb_galera_active') do
|
||||
setcode do
|
||||
mariadb_datapath = Facter.value(:mariadb_datapath) || '/var/lib/mysql'
|
||||
File.exist?("#{mariadb_datapath}/grastate.dat")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,8 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# create boolean for if mariadb is installed based of the default service file
|
||||
Facter.add('mariadb_installed') do
|
||||
setcode do
|
||||
File.exist?('/usr/lib/systemd/system/mariadb.service')
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user