fuel-library/deployment/puppet/rabbitmq
Bogdan Dobrelya 6051006e21 Make rabbitmq autoheal partitions
Default policy is 'ignore' and it does nothing in order
to recover from partitioning allowing many partitioned
rabbit clusters to operate as is.
Auto-heal policy will merge all partitions into the winner
one once exited from partitioned state
(e.g. connectivity restored).

Closes-bug: #1354319

Change-Id: I33823a3abfd42b75fa6bc73d6f3cd038a2163fd6
Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
2014-08-08 11:25:39 +03:00
..
files Rabbitmq ocf master/slave (WORK IN PROGRESS) 2014-06-19 11:52:15 +00:00
lib/puppet Update from upstream version 2.0.1 to 2.1.0 and merge our changes. All tests are green. 2013-07-08 17:56:08 +04:00
manifests Disable custom init script for rabbitmq on Fuel Master 2014-07-03 17:59:57 +04:00
spec Update from upstream version 2.0.1 to 2.1.0 and merge our changes. All tests are green. 2013-07-08 17:56:08 +04:00
templates Make rabbitmq autoheal partitions 2014-08-08 11:25:39 +03:00
tests Add package providers and version lookup 2014-04-14 18:54:09 +04:00
.fixtures.yml Update new modulefile template 2012-05-25 14:16:01 -07:00
.gemfile Switch from duplicated files to using the puppetlabs_spec_helper gem for common tasks 2012-06-08 14:34:37 -07:00
.gitignore Ignore metadata.json 2013-01-11 14:09:25 +04:00
.project Add project files 2013-01-10 18:37:05 +04:00
.travis.yml Switch from duplicated files to using the puppetlabs_spec_helper gem for common tasks 2012-06-08 14:34:37 -07:00
CHANGELOG Update from upstream version 2.0.1 to 2.1.0 and merge our changes. All tests are green. 2013-07-08 17:56:08 +04:00
LICENSE checked in gitignore, apache license and todo list 2011-06-06 08:23:38 -07:00
Modulefile Update from upstream version 2.0.1 to 2.1.0 and merge our changes. All tests are green. 2013-07-08 17:56:08 +04:00
Rakefile Switch from duplicated files to using the puppetlabs_spec_helper gem for common tasks 2012-06-08 14:34:37 -07:00
README.md Update from upstream version 2.0.1 to 2.1.0 and merge our changes. All tests are green. 2013-07-08 17:56:08 +04:00
TODO updated README and TODO. 2011-06-14 11:19:31 -07:00

RabbitMQ Puppet Module

This module manages the RabbitMQ Middleware service.

This module has been tested against 2.7.1 and is known to not support all features against earlier versions.

Authors

Classes

This module provides its core functionality through two main classes:

rabbitmq::repo::rhel

Installs the RPM from rabbitmq upstream, and imports their signing key

class { 'rabbitmq::repo::rhel':
    $version    => "2.8.4",
    $relversion => "1",
}

rabbitmq::repo::apt

Sets up an apt repo source for the vendor rabbitmq packages

class { 'rabbitmq::repo::apt':
  pin    => 900,
  before => Class['rabbitmq::server']
}

rabbitmq::server

Class for installing rabbitmq-server:

class { 'rabbitmq::server':
  port              => '5673',
  delete_guest_user => true,
}

Clustering

To use RabbitMQ clustering and H/A facilities, use the rabbitmq::server parameters config_cluster and cluster_disk_nodes, e.g.:

class { 'rabbitmq::server':
  config_cluster => true,
  cluster_disk_nodes => ['rabbit1', 'rabbit2'],
}

Currently all cluster nodes are registered as disk nodes (not ram).

NOTE: You still need to use x-ha-policy: all in your client applications for any particular queue to take advantage of H/A, this module merely clusters RabbitMQ instances.

Native Types

NOTE: Unfortunately, you must specify the provider explicitly for these types

rabbitmq_user

query all current users: $ puppet resource rabbitmq_user

rabbitmq_user { 'dan':
  admin    => true,
  password => 'bar',
  provider => 'rabbitmqctl',
}

rabbitmq_vhost

query all current vhosts: $ puppet resource rabbitmq_vhost

rabbitmq_vhost { 'myhost':
  ensure => present,
  provider => 'rabbitmqctl',
}

rabbitmq_user_permissions

rabbitmq_user_permissions { 'dan@myhost':
  configure_permission => '.*',
  read_permission      => '.*',
  write_permission     => '.*',
  provider => 'rabbitmqctl',
}

rabbitmq_plugin

query all currently enabled plugins $ puppet resource rabbitmq_plugin

rabbitmq_plugin {'rabbitmq_stomp':
  ensure => present,
  provider => 'rabbitmqplugins',
}