Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

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

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Puppet module for the control of RabbitMQ


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

$ git submodule add

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.


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.