galera_arbitrator
Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- , , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'jadestorm-galera_arbitrator', '2.0.2'
Learn more about managing modules with a PuppetfileDocumentation
galera_arbitrator
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with galera_arbitrator
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Overview
This module configures a standalone Galera Arbitrator without touching any other components of the system. It is developed for the RedHat family but should be fairly easy to configure for other distributions.
Module Description
A Galera Arbitrator acts as a lightweight member of a Galera cluster, primarily useful when you need another node in the cluster for quorum. It participates in voting without handling the actual functionality the cluster provides. For example if it is part of a MySQL cluster, it would not serve MySQL at all.
I built this module to be incredibly focused on garbd and not effect anything else on the system.
Setup
What galera_arbitrator affects
- Installs garbd package
- Sets up garbd sysconfig config file
Setup Requirements
- You must have Percona's package repository (or whatever repo contains the packagename specified) configured for this to work, this module does not take care of it for you. There are multiple Puppet modules available that can assist with that. I did not want to force a particular implementation.
Usage
Beginning with galera_arbitrator
If you are running a RedHat based system, all you should have to do is call the module with the list of nodes and cluster name (referred to as cluster group by garbd). Ex:
class { 'galera_arbitrator':
galera_nodes => '1.1.1.1:4567,2.2.2.2:4567,3.3.3.3:4567',
galera_group => 'my_galera_cluster',
}
You can also configure it via hiera and simply include galera_arbitrator
:
---
galera_arbitrator::galera_nodes: '1.1.1.1:4567,2.2.2.2:4567,3.3.3.3:4567'
galera_arbitrator::galera_group: 'my_galera_cluster'
Parameters for the galera_arbitrator class
servicename
: The service name used with init.d, systemctl, etc. Default: system dependent, see data directorypackagename
: The full package name used with your package manager. Default: system dependent, see data directorysysconfig
: Full path to the sysconfig file used by garbd. Default: system dependent, see data directoryensure_package
: Sets the ensure value of the package resource. Default:present
ensure_service
: Sets the ensure value of the service resource. Default:running
enable_service
: Sets the enable value of the service resource. Default:true
galera_nodes
: Comma separated list, or array, of node IP addresses and optional ports using ipaddr:port. requiredgalera_group
: Galera cluster name requiredgalera_options
: Optional parameters to pass to garbdgalera_logfile
: Optional log file path (defaults to syslog)
Reference
For more information on how to use the Galera Arbitrator, see: Percona's Latest Garbd Howto
Limitations
Out of the box, this only supports RedHat and Debian style Linux distributions, and only those that are supported by Percona. Most Percona supported Linux distributions should be fairly easy to support by setting servicename, packagename, and sysconfig.
Development
I don't have anything specific to say here aside from, fork it in github.com and submit a pull request! Thank you for your help!
Contributors
- Daniel Henninger, github.com/jadestorm
Changelog
2023-10-13 - Release 2.0.2
- I had built the package from a Windows machine and it made garb.erb have CRLF instead of just LF, breaking reading the file.
2023-10-12 - Release 2.0.1
- Fixed a bug where I was referring param variables even through I switched to the data model. (broke under Puppet 8)
2023-09-06 - Release 2.0.0
- Refactored to abide by modern standards.
- Fixed Puppet 9 incompatibilities.
- Removed stdlib dependency.
- Added support for Rocky and Alma linux to match other RedHat family support.
- Added support for modern versions of supported OSes.
- BREAKING: Changed default installed version of garbd to 8.x series. (which uses a more common name)
- BREAKING: Dropped support for anything older than Puppet 7.
- BREAKING: Dropped support for RedHat families older than 7.
- BREAKING: Dropped support for Ubuntu older than 20.04.
- BREAKING: Dropped support for Debian older than 8.
2017-10-27 - Release 1.0.5
- Flagged as tested and supported under Puppet 5.
2017-02-17 - Release 1.0.4
- Added some basic spec testing.
- Fixed bugs with the following params: ensure_package, ensure_service, enable_service.
- Added some nifty badges to README that I borrowed from Vox.
2017-02-05 - Release 1.0.3
- Switched default systemd name to garb.
2017-02-04 - Release 1.0.2
- Restored proper scoping of variables.
- Added example of hiera parameter setting.
- Added support for accepting a string or array for galera_nodes.
2017-02-04 - Release 1.0.1
- Added options to provide more control: ensure_package, ensure_service, and enable_service.
- Minor text cleanup here and there.
- Added configs for travis-ci and adjustments to Gemfile to accommodate.
- Added support for Debian/Ubuntu family.
- Fixed an apparent looping bug that I missed previously.
2017-02-03 - Release 1.0.0
- Initial release!