fuel-library/deployment/puppet/galera
Dmitry Ilyin 21c4055364 Replace wait-for-haproxy-backends with puppet type
* Implement a special puppet type to wait until haproxy backend is online.
* Wait for mysqld backend as a requirement for nova and keystone backends
* Switch to TCP connect for cluster check instead of UNIX socket:
  - the host to connect is the node's management IP
  - the port is the mysql HAProxy backend port, 3307
  - the user is clustercheck and its password is the same as wsrep user has
  - the timeout is 10 seconds
* Parametrise galera cluster check class and script
* Move galera::cluster check to opesntack module (otherwise, there are
  4 more classes to drag all the cluster check parameters through,
  including puppet-mysql module which does not have these params in upstream)
* Fix docs for cluster check class parameters

Related-Blueprint: pacemaker-improvements
Closes-bug: #1394137

Change-Id: I4eab6af7257270bf3cb2b40a34bcb21c952e8989
2015-03-11 13:52:24 +02:00
..
files/ocf Escape null strings from crm_* commands output 2015-01-28 13:15:46 +01:00
lib/facter Tune mysql and galera backend settings on scale 2014-03-19 14:36:03 +02:00
manifests Replace wait-for-haproxy-backends with puppet type 2015-03-11 13:52:24 +02:00
spec Refactor Galera module 2014-07-22 07:41:45 +00:00
templates Replace wait-for-haproxy-backends with puppet type 2015-03-11 13:52:24 +02:00
.gitignore Allow metadata.json 2013-01-10 15:18:41 +04:00
.project cleaning up galera manifests: docs and obsolete code 2013-06-28 18:15:40 +04:00
Gemfile Refactor Galera module 2014-07-22 07:41:45 +00:00
Modulefile Refactor Galera module 2014-07-22 07:41:45 +00:00
Rakefile Refactor Galera module 2014-07-22 07:41:45 +00:00
README Initial commit 2012-09-07 17:38:58 -07:00

This is a good start to play around with the galera multi-master mysql synchronous replication (http://www.codership.com/products/mysql_galera)

HOWTO:

 * play around (add a database and data, chaos-monkey nodes etc.)


WARNING

Change the mysql root password in production and limit access to galera cluster members!

TODO

 * naming: master -> donor
 * put a load balancer in front of the cluster
 * make cluster "masterless"

nodes.pp

# nodes
$cluster_name = 'wsrep_galera_cluster'

node /mysql-db-01/ {
    class { 'galera' :
        cluster_name => $cluster_name
    }
}

node /mysql-db-0([2-9])/ {
    $master_ip = '172.18.67.254'
    class { 'galera' :
        cluster_name => $cluster_name,
        master_ip    => $master_ip
    }
}