Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Puppet module for RabbitMQ message server.
Puppet
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
manifests
templates
LICENSE
README.md

README.md

Puppet module for the control of RabbitMQ

Installation

Include this project as a submodule to your own, something like:

$ git submodule add git@github.com/blt/puppet-rabbitmq.git

If you're on Debian you'll need to install puppet-apt. Have a look at manifests/config.pp. Rather than squeeze you through my thoughts on how RabbitMQ should be configured, I've assumed that rabbitmq/rabbitmq.config.erb will be hosted as a static file.

If this proves to be an onerous requirement--or you end up writing a lot of configuration around this module--please take out an issue.

Usage

In your AMQP hosting node definitions do

include rabbitmq

Defaults are stressed over configuration for simplicity's sake. If that rubs you badly, have a look at puppetlabs-rabbitmq. Specifically:

  • The server runs on a single host, no clustering.
  • No other high-availability steps are made.
  • The guest account is entirely removed, meaning you must set your own users.

I will gladly accept patches that alter these assumptions, especially the lack of high-availability support.

Several resources exist:

  • rabbitmq::resource::vhost -- Set or destroy rabbitmq vhosts
  • rabbitmq::resource::user -- Set or destroy rabbitmq users
  • rabbitmq::resource::user::permissions -- Set or reset rabbitmq user permissions

For instance, create the vhost 'logs' and user 'logger':

rabbitmq::resource::vhost { '/logs':
  ensure => present,
}

rabbitmq::resource::user { 'logger':
  ensure => present,
  before => Rabbitmq::Resource::User::Permissions['logger'],
}
rabbitmq::resource::user::permissions { 'logger':
  ensure => present,
  vhost  => '/logs',
}
Something went wrong with that request. Please try again.