Epoc 179 1 B403 Value Assignment Datasheet

RabbitMQ Chef Cookbook

This is a cookbook for managing RabbitMQ with Chef.

Supported Chef Versions

This cookbook targets Chef 12.1 and later.

Dependencies

This cookbook depends on the Erlang cookbook.

Supported RabbitMQ Versions

release series of this cookbook can provision any recent (3.7.x, 3.6.x) version and even older ones (e.g. 3.5.8), provided that a supported Erlang version is also provisioned.

3.7.x

Ensure Your Cookbook Version is Compatible

To provision RabbitMQ 3.7.x, you must use version of this cookbook or later. Older versions will use incorrect package download URLs.

Provision Erlang/OTP 19.3 or Later

Before provisioning a 3.7.x release, please beware that the minimum required Erlang version for it is 19.3. 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 is set to :

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

Set RabbitMQ Version

Set to specify a version:

If you have or 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.

3.6.x

Set to specify a version:

Erlang 19.3.6.5 or 20.x versions are highly recommended.

3.6.x releases will be downloaded from GitHub by default.

Supported Distributions

The release was tested with recent RabbitMQ releases on

  • CentOS 7.0
  • Ubuntu 14.04
  • Ubuntu 16.04
  • Debian 8.0

Those are the distributions currently used to run tests with Kitchen.

Local Kitchen tests and user experience suggest that more recent Debian, Ubuntu and CentOS 7.x versions should work just fine.

Recipes

default

Installs 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 to .

The cluster recipe is now combined with the default and will now auto-cluster. Set the attribute to , array of strings that describe which you want to be disk nodes and then set an alphanumeric string for the .

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

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

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

Custom Package Download Locations

and 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 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.x and 3.5.x, it is where being the value of with dots replaced by underscores. So, will be translated to .

Lastly, a package name will be appended to form a full download URL. They rarely need changing but can also be overridden using the and attributes.

Attributes

A full list of SSL attributes can be found in 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:

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:

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 . 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:

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

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.

mgmt_console

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

plugin_management

Enables any plugins listed in the and disables any listed in attributes.

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

To specify a plugin, set the attribute to .

policy_management

Enables any policies listed in the and disables any listed in attributes.

See examples in attributes file.

user_management

Enables any users listed in the and disables any listed in 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.

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.

virtualhost_management

Enables any vhosts listed in the and disables any listed in 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 .
  • Manual clustering : Configure the cluster by executing command.

Attributes

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

Example

Resources/Providers

There are 5 LWRPs for interacting with RabbitMQ.

plugin

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

  • enables a
  • disables a

Examples

policy

sets or clears a rabbitmq policy.

  • sets a
  • clears a
  • lists s

Examples

user

Adds and deletes users, fairly simplistic permissions management.

  • adds a with a
  • deletes a
  • sets the for a , is optional
  • clears the permissions for a
  • set the tags on a user
  • clear any tags on a user
  • set the for a

Examples

vhost

Adds and deletes vhosts.

  • adds a
  • deletes a

Examples

cluster

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

  • 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.
  • set the cluster name.
  • change cluster type of node. or should be set.

Examples

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 . - 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 .

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

Change Log

v5.6.1 (2018-03-01)

Full Diff

Bug Fixes

  • Force a TCP socket option, , 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.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 #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:

  • Fix exception when first node is launched. Fixes issue #285 #286 (alexpop)
  • Use gsub instead of gsub! #284 (stevedomin)
  • Allow the service to be manually managed #281 (joshgarnett)
  • Allow for flexiable SSL cipher formats #280

Потому что ТРАНСТЕКСТ никак не мог вскрыть этот файл. Он был зашифрован с помощью некоего нового алгоритма, с которым фильтры еще не сталкивались. Джаббе потребовалось почти шесть часов, чтобы их настроить.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *