/puppetlabs-rabbitmq

RabbitMQ Puppet Module

Primary LanguageRubyApache License 2.0Apache-2.0

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',
}