danehans / puppetlabs-rabbitmq

RabbitMQ Puppet Module

Home Page:http://forge.puppetlabs.com/puppetlabs/rabbitmq

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

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.

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

About

RabbitMQ Puppet Module

http://forge.puppetlabs.com/puppetlabs/rabbitmq

License:Apache License 2.0


Languages

Language:Ruby 71.4%Language:Puppet 28.6%