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.
- Jeff McCune jeff@puppetlabs.com
- Dan Bode dan@puppetlabs.com
- RPM/RHEL packages by Vincent Janelle randomfrequency@gmail.com
This module provides its core functionality through two main classes:
Installs the RPM from rabbitmq upstream, and imports their signing key
class { 'rabbitmq::repo::rhel':
$version => "2.8.4",
$relversion => "1",
}
Sets up an apt repo source for the vendor rabbitmq packages
class { 'rabbitmq::repo::apt':
pin => 900,
before => Class['rabbitmq::server']
}
Class for installing rabbitmq-server:
class { 'rabbitmq::server':
port => '5673',
delete_guest_user => true,
}
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.
You should set the 'config_mirrored_queues' parameter if you plan on using RabbitMQ Mirrored Queues within your cluster:
class { 'rabbitmq::server':
config_cluster => true,
config_mirrored_queues => true,
cluster_disk_nodes => ['rabbit1', 'rabbit2'],
}
By setting mirrored queues to true, the rabbitmq-server 2.8.7-1 package will be used. This package version addressed several mirrored queues bugs and is the most widely tested.
NOTE: Unfortunately, you must specify the provider explicitly for these types
query all current users: $ puppet resource rabbitmq_user
rabbitmq_user { 'dan':
admin => true,
password => 'bar',
provider => 'rabbitmqctl',
}
query all current vhosts: $ puppet resource rabbitmq_vhost
rabbitmq_vhost { 'myhost':
ensure => present,
provider => 'rabbitmqctl',
}
rabbitmq_user_permissions { 'dan@myhost':
configure_permission => '.*',
read_permission => '.*',
write_permission => '.*',
provider => 'rabbitmqctl',
}
query all currently enabled plugins $ puppet resource rabbitmq_plugin
rabbitmq_plugin {'rabbitmq_stomp':
ensure => present,
provider => 'rabbitmqplugins',
}