GithubHelp home page GithubHelp logo

ncstate-daniel / puppet-galera_arbitrator Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 45 KB

Manages a bare bones Galera Arbitrator node without touching anything else

Ruby 76.67% Puppet 16.78% HTML 6.55%

puppet-galera_arbitrator's Introduction

galera_arbitrator

Build Status Code Coverage Puppet Forge Puppet Forge - downloads Puppet Forge - endorsement Puppet Forge - scores

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with galera_arbitrator
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. 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 directory
  • packagename: The full package name used with your package manager. Default: system dependent, see data directory
  • sysconfig: Full path to the sysconfig file used by garbd. Default: system dependent, see data directory
  • ensure_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. required
  • galera_group: Galera cluster name required
  • galera_options: Optional parameters to pass to garbd
  • galera_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

puppet-galera_arbitrator's People

Contributors

ncstate-daniel avatar

Watchers

Daniel Henninger avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.