Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

rabbitmq (90) Versions 5.8.1

Installs and configures RabbitMQ server

Policyfile
Berkshelf
Knife
cookbook 'rabbitmq', '= 5.8.1', :supermarket
cookbook 'rabbitmq', '= 5.8.1'
knife supermarket install rabbitmq
knife supermarket download rabbitmq
README
Dependencies
Changelog
Quality 83%

RabbitMQ Chef Cookbook

Build Status
Cookbook Version

This is a cookbook for managing RabbitMQ with Chef.

Supported Chef Versions

This cookbook targets Chef 13.0 and later.

Supported Distributions

The cookbook targets and is tested against

  • RHEL 7
  • CentOS 7
  • Ubuntu 18.04
  • Ubuntu 16.04
  • Debian 9
  • Fedora 29
  • Amazon Linux 2 (as of 5.7.5)
  • Scientific Linux 7

Those are the distributions currently used to run tests [with Kitchen](.kitchen.yml).

Newer Versions

Newer Debian, Ubuntu and CentOS 7.x versions should work.

Older Versions

CentOS 6.x, Ubuntu 14.04 and Debian 8.0 might
work just fine but their support has been discontinued. Some of those distributions
will go out of vendor support in 2019.

Dependencies

This cookbook depends on the Erlang cookbook
and assumes that the user can configure it to provision a supported Erlang/OTP version.

Two more recipes are provided by this cookbook:rabbitmq::erlang_package and rabbitmq::esl_erlang_package.
The latter is an alias to the erlang::esl recipe in the Erlang
cookbook.

The former uses Debian Erlang packages and zero dependency Erlang RPM package produced and published by Team RabbitMQ.
Those packages provide the latest patch releases of Erlang/OTP.

Both options are covered below.

Supported RabbitMQ Versions

5.x release series of this cookbook can provision any recent (3.7.x, 3.6.16) version
if a supported Erlang version is also provisioned.

Provisioning RabbitMQ 3.7.x

Ensure Your Cookbook Version is Compatible

To provision RabbitMQ 3.7.x, you must use version 5.7.0 of this cookbook or later.

Provision Erlang/OTP 20.3 or Later

Before provisioning a 3.7.x release, please learn about
the minimum required Erlang version.

Most distributions provide older versions, so Erlang must be provisioned either
using RabbitMQ's zero dependency Erlang RPM,
Debian Erlang packages,
or from Erlang Solutions

Installing Erlang Using Packages by Team RabbitMQ

rabbitmq::erlang_package is a recipe that provisions latest Erlang packages from team RabbitMQ.
The packages support

  • Debian Stretch and Buster
  • Ubuntu 16.04 and 18.04
  • RHEL 7
  • CentOS 7
  • CentOS 6
  • Fedora 27 or later
  • Scientific Linux 7
  • Amazon Linux 2

The packages are cannot be installed alongside with other Erlang packages, for example, those
from standard Debian repositories or Erlang Solutions.

To make sure that the Erlang cookbook is not used by rabbitmq::default, rabbitmq::cluster,
and other recipes, set node['rabbitmq']['erlang']['enabled'] to true:

node['rabbitmq']['erlang']['enabled'] = true

By default rabbitmq::erlang_package will install the latest Erlang version available.
To override package version, use node['rabbitmq']['erlang']['version']:

# Debian
node['rabbitmq']['erlang']['version'] = '1:21.3.6-1'

# RPM
node['rabbitmq']['erlang']['version'] = '21.3.6'

On Ubuntu and Debian the distribution will be picked from node attributes.
It is possible to override the component used (see Ubuntu and Debian installation guide to learn more):

# provisions Erlang 20.3.x
node['rabbitmq']['erlang']['apt']['components'] = ["erlang-20.x"]

Most of the time there is no need to override other attributes. Below is a list of defaults
used on Ubuntu and Debian:

# RabbitMQ Erlang packages
default['rabbitmq']['erlang']['apt']['uri'] = "https://dl.bintray.com/rabbitmq-erlang/debian"
default['rabbitmq']['erlang']['apt']['lsb_codename'] = node['lsb']['codename']
default['rabbitmq']['erlang']['apt']['components'] = ["erlang"]
default['rabbitmq']['erlang']['apt']['key'] = "6B73A36E6026DFCA"

default['rabbitmq']['erlang']['apt']['install_options'] = %w(--fix-missing)

On CentOS 7 and 6, base Yum repository URL will be picked based on distribution versions.
On Fedora the CentOS 7 package will be used. Erlang package version is set the same way
as for Debian (see above).

Below are the defaults used by the Yum repository:

default['rabbitmq']['erlang']['yum']['baseurl'] = 'https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/7'
default['rabbitmq']['erlang']['yum']['gpgkey'] = 'https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc'
default['rabbitmq']['erlang']['yum']['gpgcheck'] = true
default['rabbitmq']['erlang']['yum']['repo_gpgcheck'] = false

Installing Erlang with the Erlang Cookbook

The Erlang cookbook will provision packages from Erlang Solutions if node['erlang']['install_method'] is set to esl:

# will install the latest release, please
# consult with https://www.rabbitmq.com/which-erlang.html first
node['erlang']['install_method'] = "esl"

to provision a specific version, e.g. 20.3.8.21:

node['erlang']['install_method'] = "esl"
# Ubuntu and Debian
# note the "1:" package epoch prefix
node['erlang']['esl']['version'] = "1:20.3.8.21"
node['erlang']['install_method'] = "esl"
# CentOS, RHEL, Fedora
node['erlang']['esl']['version'] = "20.3.8.21-1"

Seting RabbitMQ Version

Set node['rabbitmq']['version'] to specify a version:

node['rabbitmq']['version'] = "3.7.14"

If you have node['rabbitmq']['deb_package_url'] or node['rabbitmq']['rpm_package_url'] overridden
from earlier versions, consider omitting those attributes. Otherwise see a section on download
location customization below.

3.7.x releases will be downloaded from Bintray by default.

Provisioning RabbitMQ 3.6.16

RabbitMQ 3.6 has reached end of life
in May 2018. Its use is highly discouraged. It will no longer receive any kind of updates,
including security ones.

Provision Erlang/OTP 19.3 or Later

RabbitMQ 3.6.16 requires Erlang 19.3.6.5 or later.

Installing Erlang Using Packages by Team RabbitMQ

rabbitmq::erlang_package is a recipe that provisions latest Erlang packages from team RabbitMQ.
The packages support

  • Debian Stretch and Buster
  • Ubuntu 16.04 and 18.04
  • CentOS 7
  • CentOS 6
  • Fedora 25 or later

The packages are cannot be installed alongside with other Erlang packages, for example, those
from standard Debian repositories or Erlang Solutions.

To make sure that the Erlang cookbook is not used by rabbitmq::default, rabbitmq::cluster,
and other recipes, set node['rabbitmq']['erlang']['enabled'] to true:

node['rabbitmq']['erlang']['enabled'] = true

By default rabbitmq::erlang_package will install the latest Erlang version available.
To override package version, use node['rabbitmq']['erlang']['version']:

# Debian
node['rabbitmq']['erlang']['version'] = '1:20.3.8.20-1'

# RPM
node['rabbitmq']['erlang']['version'] = '20.3.8.20'

On Ubuntu and Debian the distribution will be picked from node attributes.
It is possible to override the component used (see Ubuntu and Debian installation guide to learn more):

# provisions Erlang 20.3.x
node['rabbitmq']['erlang']['apt']['components'] = ["erlang-20.x"]

Most of the time there is no need to override other attributes. Below is a list of defaults
used on Ubuntu and Debian:

# RabbitMQ Erlang packages
default['rabbitmq']['erlang']['apt']['uri'] = "https://dl.bintray.com/rabbitmq-erlang/debian"
default['rabbitmq']['erlang']['apt']['lsb_codename'] = node['lsb']['codename']
default['rabbitmq']['erlang']['apt']['components'] = ["erlang"]
default['rabbitmq']['erlang']['apt']['key'] = "6B73A36E6026DFCA"

default['rabbitmq']['erlang']['apt']['install_options'] = %w(--fix-missing)

On CentOS 7 and 6, base Yum repository URL will be picked based on distribution versions.
On Fedora the CentOS 7 package will be used. Erlang package version is set the same way
as for Debian (see above).

Below are the defaults used by the Yum repository:

default['rabbitmq']['erlang']['yum']['baseurl'] = 'https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/20/el/7'
default['rabbitmq']['erlang']['yum']['gpgkey'] = 'https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc'
default['rabbitmq']['erlang']['yum']['gpgcheck'] = true
default['rabbitmq']['erlang']['yum']['repo_gpgcheck'] = false

Installing Erlang with the Erlang Cookbook

Most distributions provide older versions, so Erlang must be provisioned either
from Erlang Solutions or RabbitMQ's zero dependency Erlang RPM.

The Erlang cookbook will provision packages from Erlang Solutions if node['erlang']['install_method'] is set to esl:

# will install the latest release, please
# consult with https://www.rabbitmq.com/which-erlang.html first
node['erlang']['install_method'] = "esl"

The following examples provision Erlang 20.3.8.20:

node['erlang']['install_method'] = "esl"
# Ubuntu and Debian
# note the "1:" package epoch prefix
node['erlang']['esl']['version'] = "1:20.3.8.20-1"
node['erlang']['install_method'] = "esl"
# CentOS, RHEL, Fedora
node['erlang']['esl']['version'] = "20.3.8.20-1"

Set RabbitMQ Version

Set node['rabbitmq']['version'] to specify a version:

node['rabbitmq']['version'] = "3.6.16"

RabbitMQ 3.6.16 will be downloaded from GitHub by default.

Recipes

default

Installs rabbitmq-server via direct download (from Bintray or GitHub, depending on the version) of
the installation package or using the distribution version. Depending on your distribution,
the provided version may be quite old so direct download is the default option.

If you want to use the distro version, set the attribute ['rabbitmq']['use_distro_version'] to true.

The cluster recipe is now combined with the default and will now auto-cluster. Set the ['rabbitmq']['clustering']['enable'] attribute to true, ['rabbitmq']['clustering']['cluster_disk_nodes'] array of node@host strings that describe which you want to be disk nodes and then set an alphanumeric string for the erlang_cookie.

To enable SSL turn ssl to true and set the paths to your cacert, cert and key files.

node['rabbitmq']['ssl'] = true
node['rabbitmq']['ssl_cacert'] = '/path/to/cacert.pem'
node['rabbitmq']['ssl_cert'] = '/path/to/cert.pem'
node['rabbitmq']['ssl_key'] = '/path/to/key.pem'

Listening for TCP connections may be limited to a specific interface by setting the following attribute:

node['rabbitmq']['tcp_listen_interface'] = nil

Listening for SSL connections may be limited to a specific interface by setting the following attribute:

node['rabbitmq']['ssl_listen_interface'] = nil

Custom Package Download Locations

node['rabbitmq']['deb_package_url'] and node['rabbitmq']['rpm_package_url'] can be used
to override the package download location. They configure a prefix without a version.
Set them to a download location without a version if you want to provision from a custom
endpoint such as a local mirror.

The default recipe will append a version suffix that matches RabbitMQ tag naming scheme.
For 3.7.x or later, it is just the version (unchanged).

For 3.6.16, it is "rabbitmq_v{version}" where {version} being the value of node['rabbitmq']['version']
with dots replaced by underscores. So 3.6.16 will be translated to rabbitmq_v3_6_16.

Lastly, a package name will be appended to form a full download URL. They rarely need
changing but can also be overridden using the node['rabbitmq']['deb_package']
and node['rabbitmq']['rpm_package'] attributes.

Attributes

A full list of SSL attributes can be found in [attributes/default.rb](attributes/default.rb).

Default values and usage information of important attributes are shown below. More attributes are documented in metadata.rb.

Username and Password

The default username and password are guest/guest:

['rabbitmq']['default_user'] = 'guest'

['rabbitmq']['default_pass'] = 'guest'

Loopback Users

By default, the guest user can only connect via localhost. This is the behavior of RabbitMQ when the loopback_users configuration is not specified in it's configuration file. Also, by default, this cookbook does not specify loopback_users in the configuration file:

['rabbitmq']['loopback_users'] = nil

If you wish to allow the default guest user to connect remotely, you can change this to []. If instead you wanted to allow just the user 'foo' to connect over loopback, you would set this value to ["foo"]. Learn more
in the RabbitMQ Access Control guide.

Definitions Import

RabbitMQ management plugin provides a means to load a definitions
(schema) file on node boot. See Definitions Export and Import
and Backup guides for details.

To configure definition loading, set the following attribute:

['rabbitmq']['management']['load_definitions'] = true

By default, the node will be configured to load a JSON at /etc/rabbitmq/load_definitions.json;
however, you can define another path if you'd prefer using the following attribute:

['rabbitmq']['management']['definitions_file'] = '/path/to/your/definitions.json'

In order to use this functionality, you will need to provision a file referenced by the above attribute
before you execute any recipes in the RabbitMQ cookbook (in other words, before the node starts). For example, this can be done
using a remote file resource.

management_ui

Installs the rabbitmq_management plugin.
To use https connection to management console, turn ['rabbitmq']['web_console_ssl'] to true. The SSL port for web management console can be configured by setting attribute ['rabbitmq']['web_console_ssl_port'], whose default value is 15671.

plugins

Enables any plugins listed in the node['rabbitmq']['enabled_plugins'] and disables any listed in node['rabbitmq']['disabled_plugins'] attributes.

users

Enables any users listed in the node['rabbitmq']['enabled_users'] and disables any listed in node['rabbitmq']['disabled_users'] attributes.
You can provide user credentials, the vhosts that they need to have access to and the permissions that should be allocated to each user.

node['rabbitmq']['enabled_users'] = [
    {
        :name => 'kitten',
        :password => 'kitten',
        :tag => 'leader',
        :rights => [
            {
                :vhost => 'nova',
                :conf => '.*',
                :write => '.*',
                :read => '.*'
            }
        ]
    }
]

Note that with this approach user credentials will be stored in the attribute file.
Using encrypted data bags is therefore highly recommended.

Alternatively definitions export and import (see above) can be used.
Definition files contain password hashes since clear text values are not stored.

vhosts

Enables any vhosts listed in the node['rabbitmq']['virtualhosts'] and disables any listed in node['rabbitmq']['disabled_virtualhosts'] attributes.

cluster

Configures a cluster of nodes.

It supports two clustering modes: auto or manual.

  • Auto clustering: lists cluster nodes in the RabbitMQ config file. Those are taken from lists the nodes node['rabbitmq']['clustering']['cluster_nodes'].
  • Manual clustering : Configure the cluster by executing rabbitmqctl join_cluster command.

Attributes

  • node['rabbitmq']['clustering']['enable'] : Default decision flag of clustering
  • node['rabbitmq']['erlang_cookie'] : Same erlang cookie is required for the cluster
  • node['rabbitmq']['clustering']['use_auto_clustering'] : Default is false. (manual clustering is default)
  • node['rabbitmq']['clustering']['cluster_name'] : Name of cluster. default value is nil. In case of nil or '' is set for cluster_name, first node name in node['rabbitmq']['clustering']['cluster_nodes'] attribute will be set for manual clustering. for the auto clustering, one of the node name will be set.
  • node['rabbitmq']['clustering']['cluster_nodes'] : List of cluster nodes. it required node name and cluster node type. please refer to example in below.

Example

node['rabbitmq']['clustering']['enable'] = true
node['rabbitmq']['erlang_cookie'] = 'AnyAlphaNumericStringWillDo'
node['rabbitmq']['clustering']['cluster_partition_handling'] = 'pause_minority'
node['rabbitmq']['clustering']['use_auto_clustering'] = false
node['rabbitmq']['clustering']['cluster_name'] = 'qa_env'
node['rabbitmq']['clustering']['cluster_nodes'] = [
    {
        :name => 'rabbit@rabbit1'
    },
    {
        :name => 'rabbit@rabbit2'
    },
    {
        :name => 'rabbit@rabbit3'
    }
]

policies

Enables any policies listed in the node['rabbitmq']['policies'] and disables any listed in node['rabbitmq']['disabled_policies'] attributes.

See examples in attributes file.

community_plugins

Downloads, installs and enables pre-built community plugins binaries.

To specify a plugin, set the attribute node['rabbitmq']['community_plugins']['PLUGIN_NAME'] to '{DOWNLOAD_URL}'.

Resources/Providers

There are several LWRPs for interacting with RabbitMQ and a few setting up Erlang repositories
and package.

erlang_apt_repository_on_bintray

erlang_apt_repository_on_bintray sets up a Debian package repository from Bintray.
It is a wrapper around the standard apt_repository resource provider.

See also RabbitMQ Erlang Compatibility guide.

rabbitmq_erlang_apt_repository_on_bintray 'rabbitmq_erlang_repo_on_bintray' do
  distribution node['lsb']['codename'] unless node['lsb'].nil?
  # See https://www.rabbitmq.com/install-debian.html
  components ['erlang-21.x']

  action :add
end

erlang_yum_repository_on_bintray

erlang_apt_repository_on_bintray sets up an RPM package repository from Bintray.
It is a wrapper around the standard apt_repository resource provider.

See also RabbitMQ Erlang Compatibility guide.

rabbitmq_erlang_yum_repository_on_bintray 'rabbitmq_erlang' do
  # for RHEL/CentOS 7+, Fedora. See https://www.rabbitmq.com/install-rpm.html.
  baseurl 'https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/'
  gpgkey 'https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc'

  action :add
end

erlang_package_from_bintray

Install the package. Here's an example for Debian-based systems:

rabbitmq_erlang_package_from_bintray 'rabbitmq_erlang' do
  # This package version assumes a Debian-based distribution.
  version '1:21.3.6-1'

  # provision a HiPE-enabled Erlang runtime if available
  use_hipe true

  action :install
end

Here's another one for RPM-based ones:

rabbitmq_erlang_package_from_bintray 'rabbitmq_erlang' do
  version '21.3.6'

  action :install
end

plugin

Enables or disables a rabbitmq plugin. Plugins are not supported for releases prior to 2.7.0.

  • :enable enables a plugin
  • :disable disables a plugin

Examples

rabbitmq_plugin "rabbitmq_stomp" do
  action :enable
end
rabbitmq_plugin "rabbitmq_shovel" do
  action :disable
end

policy

sets or clears a rabbitmq policy.

  • :set sets a policy
  • :clear clears a policy
  • :list lists policys

Examples

rabbitmq_policy "ha-all" do
  pattern "^(?!amq\\.).*"
  parameters ({"ha-mode"=>"all"})
  priority 1
  action :set
end
rabbitmq_policy "ha-all" do
  action :clear
end

user

Adds and deletes users, fairly simplistic permissions management.

  • :add adds a user with a password
  • :delete deletes a user
  • :set_permissions sets the permissions for a user, vhost is optional
  • :clear_permissions clears the permissions for a user
  • :set_tags set the tags on a user
  • :clear_tags clear any tags on a user
  • :change_password set the password for a user

Examples

rabbitmq_user "guest" do
  action :delete
end
rabbitmq_user "nova" do
  password "sekret"
  action :add
end
rabbitmq_user "nova" do
  vhost "/nova"
  permissions ".* .* .*"
  action :set_permissions
end
rabbitmq_user "rmq" do
  vhost ["/", "/rmq", "/nova"]
  permissions ".* .* .*"
  action :set_permissions
end
rabbitmq_user "joe" do
  tag "admin,lead"
  action :set_tags
end

vhost

Adds and deletes vhosts.

  • :add adds a vhost
  • :delete deletes a vhost

Examples

rabbitmq_vhost "/nova" do
  action :add
end

cluster

Join cluster, set cluster name and change cluster node type.

  • :join join in cluster as a manual clustering. node will join in first node of json string data.

    • cluster nodes data json format : Data should have all the cluster nodes information.
 [
     {
         "name" : "rabbit@rabbit1",
         "type" : "disc"
     },
     {
         "name" : "rabbit@rabbit2",
         "type" : "ram"
     },
     {
         "name" "rabbit@rabbit3",
         "type" : "disc"
     }
]
  • :set_cluster_name set the cluster name.
  • :change_cluster_node_type change cluster type of node. disc or ram should be set.

Examples

rabbitmq_cluster '[{"name":"rabbit@rabbit1","type":"disc"},{"name":"rabbit@rabbit2","type":"ram"},{"name":"rabbit@rabbit3","type":"disc"}]' do
  action :join
end
rabbitmq_cluster '[{"name":"rabbit@rabbit1","type":"disc"},{"name":"rabbit@rabbit2","type":"ram"},{"name":"rabbit@rabbit3","type":"disc"}]' do
  cluster_name 'seoul_tokyo_newyork'
  action :set_cluster_name
end
rabbitmq_cluster '[{"name":"rabbit@rabbit1","type":"disc"},{"name":"rabbit@rabbit2","type":"ram"},{"name":"rabbit@rabbit3","type":"disc"}]' do
  action :change_cluster_node_type
end

Removing nodes from cluster

This cookbook provides the primitives to remove a node from a cluster via helper functions but do not include these in any recipes. This is something that is potentially very dangerous and different deployments will have different needs and IF you decide you need this it should be implemented in your wrapper with EXTREME caution. There are 2 helper methods for 2 different scenario:
- removing self from cluster. This should likely only be considered for machines on a normal decommission. This is accomplished by using the helper fucntion reset_current_node.
- removing another node from cluster. This should only be done once you are sure the machine is gone and won't come back. This can be accomplished via remove_remote_node_from_cluster.

Limitations

For an already running cluster, these actions still require manual intervention:
- changing the :erlang_cookie
- turning :cluster from true to false

License & Authors

  • Author:: Benjamin Black
  • Author:: Daniel DeLeo
  • Author:: Matt Ray
  • Author:: Seth Thomas
  • Author:: JJ Asghar
  • Author:: Team RabbitMQ
Copyright (c) 2009-2018, Chef Software, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

erlang >= 0.0.0
yum-epel >= 0.0.0
yum-erlang_solutions >= 0.0.0
dpkg_autostart >= 0.0.0
logrotate >= 0.0.0

Contingent cookbooks

abiquo Applicable Versions
gitorious Applicable Versions
letsencrypt-boulder-server Applicable Versions
logstash Applicable Versions
openstack-ops-messaging Applicable Versions
phpstack Applicable Versions
pythonstack Applicable Versions
rabbitmq-cluster Applicable Versions
rabbitmq-management Applicable Versions
rabbitmq_settings Applicable Versions
sensu Applicable Versions
stack_commons Applicable Versions
stackstorm Applicable Versions
storj Applicable Versions
zenoss Applicable Versions

Change Log

v5.8.1 (2019-05-01)

Bug Fixes

  • rabbitmq[erlang_package_from_bintray] could install different versions of Debian packages due to a two step installation proceess.

Contributed by Kevin Bonner.

GitHub issue: #525

  • rabbitmq[erlang_package_from_bintray] had a no-op :remove action block on non-Debian platforms.

Contributed by Kevin Bonner.

GitHub issue: #526

v5.8.0 (2019-04-22)

Chef Compatibility

  • Chef 13 is now the minimum required version. Chef 12 has been out of support since April 2018.

GitHub issue: #523

Enhancements

  • rabbitmq[erlang_package_from_bintray] now supports Debian 10 (Buster) starting with Erlang 21.3.6. More versions will be available as they come out and become available in the rabbitmq-erlang/debian Bintray repository.

v5.7.7 (2019-04-16)

Chef 12 Compatibility

  • rabbitmq[erlang_package_from_bintray] was adapted to support Chef 12 (which is no longer maintained).

GitHub issue: #522

v5.7.6 (2019-04-11)

Bug Fixes

  • rabbitmq[erlang_yum_repository_on_bintray] no longer performs a yum update which can result in unintended package updates.

GitHub issue: #521

  • On Debian, rabbitmq[erlang_package_from_bintray] will install all Erlang packages in
    a single apt operation to avoid complications with interdependencies and order of installation.

  • Plugin operations now use inferred installed RabbitMQ version when deciding what switches
    to use. This improves compatibility for distribution-provided versions.

Contributed by Jan Klare.

GitHub issue: #518

Enhancements

v5.7.5 (2019-03-25)

Enhancements

GitHub issue: #515.

Bug Fixes

  • Scientific Linux lacked Kitchen integration tests.

GitHub issue: #516.

v5.7.4 (2019-03-20)

Enhancements

  • New LWRPs for provisioning team RabbitMQ's Erlang packages:

    • erlang_apt_repository_on_bintray and erlang_yum_repository_on_bintray for provisioning an appropriate package repository from Bintray. They are wrappers around the standard apt_repository and yum_repository resource providers:
      rabbitmq_erlang_apt_repository_on_bintray 'rabbitmq_erlang_repo_on_bintray' do
        distribution node['lsb']['codename'] unless node['lsb'].nil?
        # See https://www.rabbitmq.com/install-debian.html
        components ['erlang-21.x']
    
        action :add
      end
    
      rabbitmq_erlang_yum_repository_on_bintray 'rabbitmq_erlang' do
        # for RHEL/CentOS 7+, Fedora. See https://www.rabbitmq.com/install-rpm.html.
        baseurl 'https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/'
        gpgkey 'https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc'
    
        action :add
      end
    
    • erlang_package_from_bintray install the package:
      rabbitmq_erlang_package_from_bintray 'rabbitmq_erlang' do
        # This package version assumes a Debian-based distribution.
        # On RHEL/CentOS/Fedora it would be '21.3.3'
        version '1:21.3.3-1'
    
        # provision a HiPE-enabled Erlang runtime if available
        use_hipe true
    
        action :install
      end
    

Bug Fixes

  • Actual installed RabbitMQ package version is now inferred using Ohai when deciding whether to use certain features, CLI tool arguments and so on.

Contributed by Jan Klare.

GitHub issue: #509

v5.7.3 (2019-03-15)

  • Follow-up to #508: more resources treat distro version as 3.6.x.

Note that node['rabbitmq']['use_distro_version'] will be dropped in the next major version of this cookbook.
Consider provisioning a supported RabbitMQ version (e.g. 3.7.13) instead of relying on node['rabbitmq']['use_distro_version'].

GitHub issue: #508

v5.7.2 (2019-03-13)

Bug Fixes

Note that node['rabbitmq']['use_distro_version'] will be dropped in the next major version of this cookbook.
Consider provisioning a supported RabbitMQ version (e.g. 3.7.13) instead of relying on node['rabbitmq']['use_distro_version'].

GitHub issue: #508

v5.7.1 (2019-03-11)

Bug Fixes

  • LSB attribute is no longer references on non-Debian platforms.

Contributed by Sten Spans.

GitHub issue: #507

Enhancements

  • Default provisioned RabbitMQ version is now 3.7.13.

v5.7.0 (2019-03-06)

Enhancements

  • rabbitmq::erlang_package and rabbitmq::esl_erlang_package are new recipes that
    provision Erlang packages. The latter is an alias to the erlang::esl recipe in the Erlang
    cookbook. The former uses Debian Erlang packages and zero dependency Erlang RPM package
    produced by Team RabbitMQ.
    Those packages provide the latest patch releases of Erlang/OTP.

  • Major integration test suite improvements

Bug Fixes

  • rabbitmq::cluster referenced an unitialized variable
  • socat package was not installed on CentOS 6

Diff

Full Diff

v5.6.3 (2019-03-04)

Enhancements

  • Generated CONFIG_FILE value will now use node['rabbitmq']['config'] value as is if no extension is provided. Note that RabbitMQ 3.6.x doesn't support config file paths with an extension, so an exception is made for those versions.

Contributed by James Morelli.

GitHub issue: #505

Bug Fixes

  • Plugin enablement detection did not work with latest RabbitMQ 3.7.x releases.
  • Socket options now force binary mode.

Contributed by Kevin Bonner.

GitHub issue: #492

Diff

Full Diff

v5.6.1 (2018-03-01)

Full Diff

Bug Fixes

  • Force a TCP socket option, binary, that's not necessary starting with 3.6.0 but implicitly required in earlier versions.

GitHub issue: #488

v5.6.0 (2018-02-23)

Full Diff

Enhancements:

  • More TLS socket options are configurable (e.g. cipher suite preference) #487
  • TCP socket buffer size is now configurable #486
  • TCP listener interface and port are now configuratble #485
  • Config root is now configurable #484

v5.5.0 (2018-02-14)

Full Diff

Enhancements:

Closed issues:

  • Not honoring Version - always installs 3.6.8 #480
  • Github link seems to no longer be valid #479
  • Failing to create vhost and users #474

Merged pull requests:

v5.4.0 (2017-12-18)

Full Changelog

Closed issues:

  • add the abitity to add a queue #401
  • Upgrade to RabbitMQ 3.6.0 #329

Merged pull requests:

v5.3.1 (2017-10-19)

Full Changelog

Fixed bugs:

  • .erlang.cookie template is not marked as sensitive #465

Closed issues:

  • User management execution optimisation #463
  • Time for a new release (5.3.0)? #462

Merged pull requests:

v5.3.0 (2017-10-04)

Full Changelog

Closed issues:

  • version is hard coded so that we can't change the default version in wrap cookbooks #457

Merged pull requests:

  • Make it possible to override base package URL location; switch default to GitHub #458 (Wing924)
  • Request for adding retry to node start #454 (amulyas)

v5.2.0 (2017-06-16)

Full Changelog

Merged pull requests:

v5.1.0 (2017-04-28)

Full Changelog

Closed issues:

  • CentOS 7 is broken (in dokken) #435
  • Tests are broken… #434
  • Add ability to leave a cluster. #432
  • Separete recipes for installation and file configuration #431
  • 3.6.2 released #365

Merged pull requests:

v5.0.0 (2017-04-12)

Full Changelog

Closed issues:

  • policy provider prevents updating an existing policy #424

Merged pull requests:

v4.12.1 (2017-03-24)

Full Changelog

Closed issues:

  • rabbitmq::policy_management tries to modify a frozen string #422

Merged pull requests:

  • reassign variable with frozen string instead of appending to it #423 (brendenyule)

v4.12.0 (2017-03-19)

Full Changelog

Merged pull requests:

v4.11.2 (2017-03-19)

Full Changelog

Merged pull requests:

v4.11.1 (2017-03-18)

Full Changelog

Closed issues:

  • cookbook defaults broken with update to rabbitmq rpm names #416

Merged pull requests:

v4.11.0 (2017-03-17)

Full Changelog

Closed issues:

  • To install version 3.6.6 #414
  • Change default hearbeat to 60 #412
  • Erlang cookbook dependency is out of date #403

Merged pull requests:

v4.10.0 (2016-09-20)

Full Changelog

Closed issues:

  • Unable to get secondary node to join cluster. #393
  • Unable to enable plugins #392
  • New version with MR 376 #390

Merged pull requests:

v4.9.0 (2016-08-02)

Full Changelog

Closed issues:

  • what i should do about rabbitmq lay4 check? #386
  • Mixlib::ShellOut environment setter does not exist. #375
  • No candidate version available for rabbitmq-server in Ubuntu 14.04 and 4.7.0 #356

Merged pull requests:

v4.8.0 (2016-06-02)

Full Changelog

Closed issues:

  • undefined method `node_type' for Custom resource rabbitmq_cluster from cookbook rabbitmq #366
  • esl-erlang-compat is not needed for 'esl install method' #360
  • RabbitMQ 3.6.2 will have a dependency on socat #355
  • Cluster LWRP :join action leaves Rabbit stopped on join error #344
  • Wrong method in set_cluster_name matcher #342
  • Duplicate attributes ['cluster_disk_nodes'] vs ['clustering']['cluster_nodes'] #268

Merged pull requests:

v4.7.0 (2016-03-25)

Full Changelog

Closed issues:

  • Nodes try to rejoin cluster when first listed node is down #347
  • Logrotating #338
  • rabbitmq_plugin[rabbitmq_management] erlexec: HOME must be set #334
  • Alternate restarts fail on CentOS #264
  • rabbitmq-server fail to start after setting the cipher suites #259
  • Add auth_backends attribute #230

Merged pull requests:

v4.6.0 (2016-02-02)

Full Changelog

Closed issues:

  • Problems getting erlang 1.5.x version on Ubuntu 14.04 #336
  • node type is being ignored when joining a cluster #326
  • Chef restarts RabbitMQ because it always set the permissions to all the users when it runs #197

Merged pull requests:

  • v4.6.0 prep work #337 (jjasghar)
  • Fix user grep command to match whitespace #331 (gerr1t)
  • fix hardcoded --ram node type for cluster join #327 (scalp42)
  • NO-REF Check chef client version before calling sensitive #317 (XiangYao)

v4.5.1 (2015-11-24)

Full Changelog

Merged pull requests:

v4.5.0 (2015-11-24)

Full Changelog

Closed issues:

  • Upgrade to "-3_all.deb" #311
  • Changelog missing entries for 4.2.1 and 4.2.2 #306
  • Logrotate Error on Ubuntu 14.04 #283
  • 'node_name' method bug in cluster.rb recipe #271
  • RabbitMQ 3.5.2 #266
  • Error for clustering cluster_nodes use with cluster.rb #265
  • Recreate kitchen tests for Clustering #258
  • CHEF-3694 warnings #221
  • Not able to clear a policy which was created in a vhost #204
  • RabbitMQ Auto-Clustering #156
  • Add missing attribute rabbitmq.hipe\_compile #146
  • nodes not joining cluster #125

Merged pull requests:

v4.4.0 (2015-10-12)

Full Changelog

Merged pull requests:

v4.3.2 (2015-10-08)

Full Changelog

Merged pull requests:

v4.3.1 (2015-10-08)

Full Changelog

Merged pull requests:

v4.3.0 (2015-10-08)

Full Changelog

Merged pull requests:

v4.2.2 (2015-09-08)

Full Changelog

Merged pull requests:

v4.2.1 (2015-09-08)

Full Changelog

Merged pull requests:

v4.2.0 (2015-08-28)

Full Changelog

Closed issues:

  • Server failing unable to restart, able to restart when resetting queues #289
  • ulimit won't work if the current user doesnot have the limit higher or equal to 'rabbitmq' user #250

Merged pull requests:

v4.1.2 (2015-07-17)

Full Changelog

Closed issues:

  • cluster resource : possible bug in running_nodes method #285
  • cluster resource : possible bug in node_name method #282

v4.1.1 (2015-07-17)

Full Changelog

Closed issues:

  • Feature Request: Support rabbitmq_user with multiple vhosts. #278

Merged pull requests:

v4.0.1 (2015-06-16)

Full Changelog

Closed issues:

  • wrapper cookbook - node['rabbitmq']['deb_package_url] has not been overrided during execution phase #270

Merged pull requests:

  • Changes for 4.0.1 to be pushed. #275 (jjasghar)
  • Fix single quote and nil issues with cluster recipe #274 (dude051)
  • Fixed 'rabbitmqctl eval' command for old rabbitmq versions #272 (XiangYao)
  • Support additional env args #269 (krtyyy)
  • Add patterns to catch where the node name is surrounded by single-quotes #267 (monkey1016)
  • Remove the extra curly braces for format_ssl_ciphers #260 (wenchma)

v4.0.0 (2015-04-24)

Full Changelog

Closed issues:

  • Unable to set/override default_user/pass #245

Merged pull requests:

v3.13.0 (2015-04-23)

Full Changelog

Merged pull requests:

v3.12.0 (2015-04-07)

Full Changelog

Closed issues:

  • seems cookbook is unable to set/override default username & password #245 #246
  • Oops #242
  • metadata.rb is missing in rabbitmq 3.10.0 cookbook #233
  • Installation fails if you decide to install erlang from sources #224
  • 3.4.4 has been released. #222
  • Use default version not working in CentOS #218
  • No changelog for 3.10 #216
  • When updating the user attributes or the policy attributes they are not taken into consideration if the resource already exists #205
  • rabbitmq-server can't be started when selinux is enforcing on redhat 7 #200
  • erlang broken #199
  • Replace the hard links for package sources with attributes #192
  • Centos 7.0 support #189
  • cannot_read_enabled_plugins_file - eacces #182
  • loopback_users cannot be configured #159
  • .erlang.cookie is ignored #137
  • Configuring default_user and default_pass in rabbitmq.config is insecure #136
  • policy provider does not support apply-to #135
  • Kernel parameters errors #124

Merged pull requests:

v3.11.0 (2015-02-26)

Full Changelog

Closed issues:

  • Recipe stops server to change erlang cookie even when it's not necessary #232
  • Type Error with newest code #227
  • Add support for multiple nodes on one machine #225

Merged pull requests:

v3.10.0 (2015-02-05)

Full Changelog

Closed issues:

  • version pining does not work by default with use_distro_version #210

Merged pull requests:

v3.9.0 (2015-01-28)

Full Changelog

Closed issues:

  • Can't successfully rerun the cookbook if set the wrong parameter the first time #201
  • New version 3.4.3 released #195
  • More chefspec test coverage #190

Merged pull requests:

v3.8.0 (2015-01-08)

Full Changelog

Closed issues:

  • Wrong service provider used on Linux Mint #194
  • undefined method `sensitive' for Chef::Resource::Execute #191
  • Chef >= 11.14.0 requirement #183
  • Change the rabbitmq config file path via cookbook will not take effect #157

Merged pull requests:

v3.7.0 (2014-12-18)

Full Changelog

Closed issues:

  • RabbitMQ should get pinned on Debian based systems #178

Merged pull requests:

v3.6.0 (2014-12-09)

Full Changelog

Fixed bugs:

  • Foodcritic failures #163

Closed issues:

  • Restarts after vhost creation #179
  • undefined method `path' for Chef::Resource::Execute #175
  • enabled_plugins file permissions issue #174
  • rabbitmq doesn't support package upgrade #143
  • chef run fails when using upstart #134

Merged pull requests:

v3.5.1 (2014-12-05)

Full Changelog

Closed issues:

  • New Rabbitmq release #165

Merged pull requests:

  • Removing the PATH from the execute resource #176 (jjasghar)

v3.5.0 (2014-12-02)

Full Changelog

Fixed bugs:

  • Default for heartbeat is set higher then suggested #169

Closed issues:

  • Working with queues #173
  • Readme doesn't have 3.4.0 release #164
  • ['rabbitmq']['config'] should not be hard coding again #155
  • Failed to connect to rabbitmq many times during openstack deployemnt #153
  • Breaks in Chef 10 #149
  • Add sensitive flag for resources that expose passwords in log #147
  • Documentation Fix - Rabbitmq_policy resource definition incorrect #133

Merged pull requests:

v3.4.0 (2014-11-23)

Full Changelog

pull (2014-11-23)

Full Changelog

Closed issues:

  • Intermittent notifies issue with plugin provider #141

Merged pull requests:

  • Updated the RuboCop camel case #162 (jjasghar)
  • Make rabbitmq service restart immediately #154 (wenchma)
  • Adding switch to make TCP listeners optional #150 (frankwis)
  • Add sensitive flag for resources that expose passwords in log #148 (kramvan1)
  • 141 plugin notify fix #142 (caryp)
  • Fix user_has_tag? issue when name and tag are the same #140 (shunwen)

v3.3.0 (2014-08-28)

Full Changelog

Merged pull requests:

  • test-kitchen updates - porting to serverspec, added cluster suites #138 (kennonkwok)
  • update rabbitmq_policy definition to properly enter params #132 (zarry)
  • Make cluster nodes list more deterministic #128 (dgivens)
  • Fix restarts on erlang cookie setting (again) #120 (kennonkwok)

v3.2.2 (2014-05-08)

Full Changelog

v3.2.0 (2014-04-24)

Full Changelog

v3.1.0 (2014-03-28)

Full Changelog

v3.0.4 (2014-03-19)

Full Changelog

v3.0.2 (2014-02-28)

Full Changelog

v3.0.0 (2014-02-28)

Full Changelog

v2.4.2 (2014-02-27)

Full Changelog

v2.4.0 (2014-02-14)

Full Changelog

v2.3.2 (2013-10-08)

Full Changelog

Merged pull requests:

  • [COOK-3633] Notify stop, log, and start from the template resource #86 (sethvargo)
  • [COOK-3606] remove trailing \n from erlang cookie file contents #84 (portertech)

v2.3.0 (2013-08-28)

Full Changelog

Merged pull requests:

  • Don't log RabbitMQ passwords. #62 (jakedavis)
  • Add attribute to bind erlang networking to localhost. #46 (abecciu)

2.1.2 (2013-06-10)

Full Changelog

Merged pull requests:

  • Cook 3099 #60 (btm)
  • COOK-3099 #59 (stensonb)
  • [COOK-3079] Use word-boundaries to delimit in permission grep #58 (vhata)
  • [COOK-3078] Escape and quote password before using #57 (vhata)

2.1.0 (2013-05-28)

Full Changelog

Merged pull requests:

2.0.0 (2013-03-22)

Full Changelog

Merged pull requests:

  • [COOK-2391] Added support for verify verify_peer and fail_if_no_peer_cert true #38 (portertech)
  • COOK-2211 New way to manage virtualhosts #33 (kamaradclimber)

1.8.0 (2013-01-08)

Full Changelog

Merged pull requests:

  • add disk_free_limit (mem_relative) and vm_memory_high_watermark settings #30 (dcrosta)

1.7.0 (2012-12-17)

Full Changelog

Merged pull requests:

  • Cook 1850: Add Oracle support to RabbitMQ #26 (tas50)

1.6.4 (2012-10-20)

Full Changelog

Merged pull requests:

  • COOK-1493 fix system callout to properly determine if plugin is enabled #12 (bignastybryce)

1.6.2 (2012-09-17)

Full Changelog

Merged pull requests:

  • [COOK-1552] removed rogue single quote from rabbitmq ssl configuration #18 (portertech)

1.6.0 (2012-09-14)

Full Changelog

Merged pull requests:

1.5.0 (2012-07-12)

Merged pull requests:

  • COOK-1386 #9 (mattray)
  • COOK-1331 adding LWRP for enabling/disabling plugins #5 (jschneiderhan)
  • [COOK-1219] immediately restart rabbitmq after changing configuration #2 (portertech)
  • Add support for Amazon Linux (i.e. "amazon") #1 (jordandm)

* This Change Log was automatically generated by github_changelog_generator

Collaborator Number Metric
            

5.8.1 passed this metric

Contributing File Metric
            

5.8.1 passed this metric

Foodcritic Metric
            

5.8.1 failed this metric

FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/parameter.rb:64
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/parameter.rb:79
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/parameter.rb:90
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/plugin.rb:49
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/plugin.rb:62
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/policy.rb:75
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/policy.rb:88
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/policy.rb:100
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/vhost.rb:46
FC085: Resource using new_resource.updated_by_last_action to converge resource: rabbitmq/providers/vhost.rb:58
Run with Foodcritic Version 14.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric
            

5.8.1 passed this metric

Testing File Metric
            

5.8.1 passed this metric

Version Tag Metric
            

5.8.1 passed this metric