X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Frabbitmq%2FREFERENCE.md;fp=3rdparty%2Fmodules%2Frabbitmq%2FREFERENCE.md;h=7afb665ae162ffcfd2e48d3503291c380c7c1ba9;hb=921e69100a563cf143f56a3905d8362336d939ff;hp=0000000000000000000000000000000000000000;hpb=b54f52d2899c5785923c804fdfbba0782c147da4;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/rabbitmq/REFERENCE.md b/3rdparty/modules/rabbitmq/REFERENCE.md new file mode 100644 index 000000000..7afb665ae --- /dev/null +++ b/3rdparty/modules/rabbitmq/REFERENCE.md @@ -0,0 +1,1968 @@ +# Reference + + +## Table of Contents + +**Classes** + +* [`rabbitmq`](#rabbitmq): A module to manage RabbitMQ +* [`rabbitmq::config`](#rabbitmqconfig): Class: rabbitmq::config Sets all the configuration values for RabbitMQ and creates the directories for config and ssl. +* [`rabbitmq::install`](#rabbitmqinstall): Class rabbitmq::install Ensures that rabbitmq-server exists +* [`rabbitmq::install::rabbitmqadmin`](#rabbitmqinstallrabbitmqadmin): +* [`rabbitmq::management`](#rabbitmqmanagement): +* [`rabbitmq::params`](#rabbitmqparams): OS Specific parameters and other settings +* [`rabbitmq::repo::apt`](#rabbitmqrepoapt): requires puppetlabs-apt puppetlabs-stdlib +* [`rabbitmq::repo::rhel`](#rabbitmqreporhel): Class: rabbitmq::repo::rhel Makes sure that the Packagecloud repo is installed +* [`rabbitmq::server`](#rabbitmqserver): Class: rabbitmq::server This module manages the installation and config of the rabbitmq server it has only been tested on certain version +* [`rabbitmq::service`](#rabbitmqservice): Class: rabbitmq::service This class manages the rabbitmq server service itself. Parameters: Actions: Requires: Sample Usage: + +**Resource types** + +* [`rabbitmq_binding`](#rabbitmq_binding): Native type for managing rabbitmq bindings rabbitmq_binding { 'binding 1': ensure => present, source => 'myexchange' +* [`rabbitmq_erlang_cookie`](#rabbitmq_erlang_cookie): Type to manage the rabbitmq erlang cookie securely This is essentially a private type used by the rabbitmq::config class to manage the erlan +* [`rabbitmq_exchange`](#rabbitmq_exchange): Native type for managing rabbitmq exchanges +* [`rabbitmq_parameter`](#rabbitmq_parameter): Type for managing rabbitmq parameters +* [`rabbitmq_plugin`](#rabbitmq_plugin): manages rabbitmq plugins +* [`rabbitmq_policy`](#rabbitmq_policy): Type for managing rabbitmq policies +* [`rabbitmq_queue`](#rabbitmq_queue): Native type for managing rabbitmq queue +* [`rabbitmq_user`](#rabbitmq_user): Native type for managing rabbitmq users +* [`rabbitmq_user_permissions`](#rabbitmq_user_permissions): Type for managing rabbitmq user permissions +* [`rabbitmq_vhost`](#rabbitmq_vhost): Native type for managing rabbitmq vhosts + +## Classes + +### rabbitmq + +rabbitmq + + @param $loopback_users. default defined in param.pp. This option configures a list of users to allow access via the loopback interfaces + +#### Examples + +##### Basic usage + +```puppet +include rabbitmq +``` + +##### rabbitmq class + +```puppet +class { 'rabbitmq': + service_manage => false, + port => '5672', + delete_guest_user => true, +} +``` + +##### Offline installation from local mirror: + +```puppet + +class { 'rabbitmq': + key_content => template('openstack/rabbit.pub.key'), + package_gpg_key => '/tmp/rabbit.pub.key', +} +``` + +##### Use external package key source for any (apt/rpm) package provider: + +```puppet +class { 'rabbitmq': + package_gpg_key => 'http://www.some_site.some_domain/some_key.pub.key', +} +``` + +##### To use RabbitMQ Environment Variables, use the parameters `environment_variables` e.g.: + +```puppet + +class { 'rabbitmq': + port => '5672', + environment_variables => { + 'NODENAME' => 'node01', + 'SERVICENAME' => 'RabbitMQ' + } +} +``` + +##### Change RabbitMQ Config Variables in rabbitmq.config: + +```puppet + +class { 'rabbitmq': + port => '5672', + config_variables => { + 'hipe_compile' => true, + 'frame_max' => 131072, + 'log_levels' => "[{connection, info}]" + } +} +``` + +##### Change Erlang Kernel Config Variables in rabbitmq.config + +```puppet +class { 'rabbitmq': + port => '5672', + config_kernel_variables => { + 'inet_dist_listen_min' => 9100, + 'inet_dist_listen_max' => 9105, + } +} +``` + +##### Change Management Plugin Config Variables in rabbitmq.config + +```puppet +class { 'rabbitmq': + config_management_variables => { + 'rates_mode' => 'basic', + } +} +``` + +##### Change Additional Config Variables in rabbitmq.config + +```puppet +class { 'rabbitmq': + config_additional_variables => { + 'autocluster' => '[{consul_service, "rabbit"},{cluster_name, "rabbit"}]', + 'foo' => '[{bar, "baz"}]' + } +} +This will result in the following config appended to the config file: +{autocluster, [{consul_service, "rabbit"},{cluster_name, "rabbit"}]}, + {foo, [{bar, "baz"}]} +(This is required for the [autocluster plugin](https://github.com/aweber/rabbitmq-autocluster) +``` + +##### Use RabbitMQ clustering facilities + +```puppet +class { 'rabbitmq': + config_cluster => true, + cluster_nodes => ['rabbit1', 'rabbit2'], + cluster_node_type => 'ram', + erlang_cookie => 'A_SECRET_COOKIE_STRING', + wipe_db_on_cookie_change => true, +} +``` + +#### Parameters + +The following parameters are available in the `rabbitmq` class. + +##### `admin_enable` + +Data type: `Boolean` + +If enabled sets up the management interface/plugin for RabbitMQ. + +Default value: $rabbitmq::params::admin_enable + +##### `auth_backends` + +Data type: `Optional[Array]` + +An array specifying authorization/authentication backend to use. Single quotes should be placed around array entries, ex. ['{foo, baz}', 'baz'] Defaults to [rabbit_auth_backend_internal], and if using LDAP defaults to [rabbit_auth_backend_internal, rabbit_auth_backend_ldap]. + +Default value: `undef` + +##### `cluster_node_type` + +Data type: `Enum['ram', 'disk', 'disc']` + +Choose between disc and ram nodes. + +Default value: $rabbitmq::params::cluster_node_type + +##### `cluster_nodes` + +Data type: `Array` + +An array of nodes for clustering. + +Default value: $rabbitmq::params::cluster_nodes + +##### `cluster_partition_handling` + +Data type: `String` + +Value to set for `cluster_partition_handling` RabbitMQ configuration variable. + +Default value: $rabbitmq::params::cluster_partition_handling + +##### `collect_statistics_interval` + +Data type: `Optional[Integer]` + +Set the collect_statistics_interval in rabbitmq.config + +Default value: `undef` + +##### `config` + +Data type: `String` + +The file to use as the rabbitmq.config template. + +Default value: $rabbitmq::params::config + +##### `config_additional_variables` + +Data type: `Hash` + +Additional config variables in rabbitmq.config + +Default value: $rabbitmq::params::config_additional_variables + +##### `config_cluster` + +Data type: `Boolean` + +Enable or disable clustering support. + +Default value: $rabbitmq::params::config_cluster + +##### `config_kernel_variables` + +Data type: `Hash` + +Hash of Erlang kernel configuration variables to set (see [Variables Configurable in rabbitmq.config](#variables-configurable-in-rabbitmq.config)). + +Default value: $rabbitmq::params::config_kernel_variables + +##### `config_path` + +Data type: `Stdlib::Absolutepath` + +The path to write the RabbitMQ configuration file to. + +Default value: $rabbitmq::params::config_path + +##### `config_management_variables` + +Data type: `Hash` + +Hash of configuration variables for the [Management Plugin](https://www.rabbitmq.com/management.html). + +Default value: $rabbitmq::params::config_management_variables + +##### `config_stomp` + +Data type: `Boolean` + +Enable or disable stomp. + +Default value: $rabbitmq::params::config_stomp + +##### `config_shovel` + +Data type: `Boolean` + +Enable or disable shovel. + +Default value: $rabbitmq::params::config_shovel + +##### `config_shovel_statics` + +Data type: `Hash` + +Hash of static shovel configurations + +Default value: $rabbitmq::params::config_shovel_statics + +##### `config_variables` + +Data type: `Hash` + +To set config variables in rabbitmq.config + +Default value: $rabbitmq::params::config_variables + +##### `default_user` + +Data type: `String` + +Username to set for the `default_user` in rabbitmq.config. + +Default value: $rabbitmq::params::default_user + +##### `default_pass` + +Data type: `String` + +Password to set for the `default_user` in rabbitmq.config. + +Default value: $rabbitmq::params::default_pass + +##### `delete_guest_user` + +Data type: `Boolean` + +Controls whether default guest user is deleted. + +Default value: $rabbitmq::params::delete_guest_user + +##### `env_config` + +Data type: `String` + +The template file to use for rabbitmq_env.config. + +Default value: $rabbitmq::params::env_config + +##### `env_config_path` + +Data type: `Stdlib::Absolutepath` + +The path to write the rabbitmq_env.config file to. + +Default value: $rabbitmq::params::env_config_path + +##### `environment_variables` + +Data type: `Hash` + +RabbitMQ Environment Variables in rabbitmq_env.config + +Default value: $rabbitmq::params::environment_variables + +##### `erlang_cookie` + +Data type: `Optional[String]` + +The erlang cookie to use for clustering - must be the same between all nodes. This value has no default and must be +set explicitly if using clustering. If you run Pacemaker and you don't want to use RabbitMQ buildin cluster, you can set config_cluster +to 'False' and set 'erlang_cookie'. + +Default value: `undef` + +##### `file_limit` + +Data type: `Variant[Integer[-1],Enum['unlimited'],Pattern[/^(infinity|\d+(:(infinity|\d+))?)$/]]` + +Set rabbitmq file ulimit. Defaults to 16384. Only available on systems with `$::osfamily == 'Debian'` or +`$::osfamily == 'RedHat'`. + +Default value: $rabbitmq::params::file_limit + +##### `heartbeat` + +Data type: `Optional[Integer]` + +Set the heartbeat timeout interval, default is unset which uses the builtin server defaults of 60 seconds. Setting this + +Default value: `undef` + +##### `inetrc_config` + +Data type: `String` + +Template to use for the inetrc config + +Default value: $rabbitmq::params::inetrc_config + +##### `inetrc_config_path` + +Data type: `Stdlib::Absolutepath` + +Path of the file to push the inetrc config to. + +Default value: $rabbitmq::params::inetrc_config_path + +##### `ipv6` + +Data type: `Boolean` + +Whether to listen on ipv6 + +Default value: $rabbitmq::params::ipv6 + +##### `interface` + +Data type: `Optional[String]` + +Interface to bind to (sets tcp_listeners parameter). By default, bind to all interfaces +to `0` will disable heartbeats. + +Default value: `undef` + +##### `key_content` + +Data type: `Optional[String]` + +Uses content method for Debian OS family. Should be a template for apt::source class. Overrides `package_gpg_key` +behavior, if enabled. Undefined by default. + +Default value: `undef` + +##### `ldap_auth` + +Data type: `Boolean` + +Set to true to enable LDAP auth. + +Default value: $rabbitmq::params::ldap_auth + +##### `ldap_server` + +Data type: `String` + +LDAP server to use for auth. + +Default value: $rabbitmq::params::ldap_server + +##### `ldap_user_dn_pattern` + +Data type: `Optional[String]` + +User DN pattern for LDAP auth. + +Default value: $rabbitmq::params::ldap_user_dn_pattern + +##### `ldap_other_bind` + +Data type: `String` + +How to bind to the LDAP server. Defaults to 'anon'. + +Default value: $rabbitmq::params::ldap_other_bind + +##### `ldap_config_variables` + +Data type: `Hash` + +Hash of other LDAP config variables. + +Default value: $rabbitmq::params::ldap_config_variables + +##### `ldap_use_ssl` + +Data type: `Boolean` + +Set to true to use SSL for the LDAP server. + +Default value: $rabbitmq::params::ldap_use_ssl + +##### `ldap_port` + +Data type: `Integer[1, 65535]` + +Numeric port for LDAP server. + +Default value: $rabbitmq::params::ldap_port + +##### `ldap_log` + +Data type: `Boolean` + +Set to true to log LDAP auth. + +Default value: $rabbitmq::params::ldap_log + +##### `manage_python` + +Data type: `Boolean` + +If enabled, on platforms that don't provide a Python 2 package by default, ensure that the python package is +installed (for rabbitmqadmin). This will only apply if `admin_enable` and `service_manage` are set. + +Default value: $rabbitmq::params::manage_python + +##### `management_hostname` + +Data type: `Optional[String]` + +The hostname for the RabbitMQ management interface. + +Default value: `undef` + +##### `management_port` + +Data type: `Integer[1, 65535]` + +The port for the RabbitMQ management interface. + +Default value: $rabbitmq::params::management_port + +##### `management_ip_address` + +Data type: `Optional[String]` + +Allows you to set the IP for management interface to bind to separately. Set to 127.0.0.1 to bind to +localhost only, or 0.0.0.0 to bind to all interfaces. + +Default value: `undef` + +##### `management_ssl` + +Data type: `Boolean` + +Enable/Disable SSL for the management port. Has an effect only if ssl => true. + +Default value: $rabbitmq::params::management_ssl + +##### `node_ip_address` + +Data type: `Optional[String]` + +Allows you to set the IP for RabbitMQ service to bind to. Set to 127.0.0.1 to bind to localhost only, or 0.0.0.0 +to bind to all interfaces. + +Default value: `undef` + +##### `package_apt_pin` + +Data type: `Optional[Variant[Numeric, String]]` + +Whether to pin the package to a particular source + +Default value: `undef` + +##### `package_ensure` + +Data type: `String` + +Determines the ensure state of the package. Set to installed by default, but could be changed to latest. + +Default value: $rabbitmq::params::package_ensure + +##### `package_gpg_key` + +Data type: `Optional[String]` + +RPM package GPG key to import. Uses source method. Should be a URL for Debian/RedHat OS family, or a file name for +RedHat OS family. Set to https://packagecloud.io/gpg.key by default. Note, that `key_content`, if specified, would override this +parameter for Debian OS family. + +Default value: $rabbitmq::params::package_gpg_key + +##### `package_name` + +Data type: `Variant[String, Array]` + +Name(s) of the package(s) to install + +Default value: $rabbitmq::params::package_name + +##### `port` + +Data type: `Integer` + +The RabbitMQ port. + +Default value: $rabbitmq::params::port + +##### `repos_ensure` + +Data type: `Boolean` + +Ensure that a repo with the official (and newer) RabbitMQ package is configured, along with its signing key. +Defaults to false (use system packages). This does not ensure that soft dependencies (like EPEL on RHEL systems) are present. + +Default value: $rabbitmq::params::repos_ensure + +##### `service_ensure` + +Data type: `Enum['running', 'stopped']` + +The state of the service. + +Default value: $rabbitmq::params::service_ensure + +##### `service_manage` + +Data type: `Boolean` + +Determines if the service is managed. + +Default value: $rabbitmq::params::service_manage + +##### `service_name` + +Data type: `String` + +The name of the service to manage. + +Default value: $rabbitmq::params::service_name + +##### `ssl` + +Data type: `Boolean` + +Configures the service for using SSL. +port => UNSET + +Default value: $rabbitmq::params::ssl + +##### `ssl_cacert` + +Data type: `Optional[Stdlib::Absolutepath]` + +CA cert path to use for SSL. + +Default value: `undef` + +##### `ssl_cert` + +Data type: `Optional[Stdlib::Absolutepath]` + +Cert to use for SSL. + +Default value: `undef` + +##### `ssl_cert_password` + +Data type: `Optional[String]` + +Password used when generating CSR. + +Default value: `undef` + +##### `ssl_depth` + +Data type: `Optional[Integer]` + +SSL verification depth. + +Default value: `undef` + +##### `ssl_dhfile` + +Data type: `Optional[Stdlib::Absolutepath]` + +Use this dhparam file [example: generate with `openssl dhparam -out /etc/rabbitmq/ssl/dhparam.pem 2048` + +Default value: `undef` + +##### `ssl_erl_dist` + +Data type: `Boolean` + +Whether to use the erlang package's SSL (relies on the ssl_erl_path fact) + +Default value: $rabbitmq::params::ssl_erl_dist + +##### `ssl_honor_cipher_order` + +Data type: `Boolean` + +Force use of server cipher order + +Default value: $rabbitmq::params::ssl_honor_cipher_order + +##### `ssl_interface` + +Data type: `Optional[String]` + +Interface for SSL listener to bind to + +Default value: `undef` + +##### `ssl_key` + +Data type: `Optional[Stdlib::Absolutepath]` + +Key to use for SSL. + +Default value: `undef` + +##### `ssl_only` + +Data type: `Boolean` + +Configures the service to only use SSL. No cleartext TCP listeners will be created. Requires that ssl => true and + +Default value: $rabbitmq::params::ssl_only + +##### `ssl_management_port` + +Data type: `Integer[1, 65535]` + +SSL management port. + +Default value: $rabbitmq::params::ssl_management_port + +##### `ssl_port` + +Data type: `Integer[1, 65535]` + +SSL port for RabbitMQ + +Default value: $rabbitmq::params::ssl_port + +##### `ssl_reuse_sessions` + +Data type: `Boolean` + +Reuse ssl sessions + +Default value: $rabbitmq::params::ssl_reuse_sessions + +##### `ssl_secure_renegotiate` + +Data type: `Boolean` + +Use ssl secure renegotiate + +Default value: $rabbitmq::params::ssl_secure_renegotiate + +##### `ssl_stomp_port` + +Data type: `Integer[1, 65535]` + +SSL stomp port. + +Default value: $rabbitmq::params::ssl_stomp_port + +##### `ssl_verify` + +Data type: `Enum['verify_none','verify_peer']` + +rabbitmq.config SSL verify setting. + +Default value: $rabbitmq::params::ssl_verify + +##### `ssl_fail_if_no_peer_cert` + +Data type: `Boolean` + +rabbitmq.config `fail_if_no_peer_cert` setting. + +Default value: $rabbitmq::params::ssl_fail_if_no_peer_cert + +##### `ssl_management_verify` + +Data type: `Enum['verify_none','verify_peer']` + +rabbitmq.config SSL verify setting for rabbitmq_management. + +Default value: $rabbitmq::params::ssl_management_verify + +##### `ssl_manaagement_fail_if_no_peer_cert` + +rabbitmq.config `fail_if_no_peer_cert` setting for rabbitmq_management. + +##### `ssl_versions` + +Data type: `Optional[Array]` + +Choose which SSL versions to enable. Example: `['tlsv1.2', 'tlsv1.1']` Note that it is recommended to disable `sslv3 +and `tlsv1` to prevent against POODLE and BEAST attacks. Please see the [RabbitMQ SSL](https://www.rabbitmq.com/ssl.html) documentation +for more information. + +Default value: `undef` + +##### `ssl_ciphers` + +Data type: `Array` + +Support only a given list of SSL ciphers. Example: `['dhe_rsa,aes_256_cbc,sha','dhe_dss,aes_256_cbc,sha', +'ecdhe_rsa,aes_256_cbc,sha']`. Supported ciphers in your install can be listed with: rabbitmqctl eval 'ssl:cipher_suites().' +Functionality can be tested with cipherscan or similar tool: https://github.com/jvehent/cipherscan.git + +Default value: $rabbitmq::params::ssl_ciphers + +##### `stomp_port` + +Data type: `Integer[1, 65535]` + +The port to use for Stomp. + +Default value: $rabbitmq::params::stomp_port + +##### `stomp_ssl_only` + +Data type: `Boolean` + +Configures STOMP to only use SSL. No cleartext STOMP TCP listeners will be created. Requires setting +ssl_stomp_port also. + +Default value: $rabbitmq::params::stomp_ssl_only + +##### `stomp_ensure` + +Data type: `Boolean` + +Enable to install the stomp plugin. + +Default value: $rabbitmq::params::stomp_ensure + +##### `tcp_backlog` + +Data type: `Integer` + +The size of the backlog on TCP connections. + +Default value: $rabbitmq::params::tcp_backlog + +##### `tcp_keepalive` + +Data type: `Boolean` + +Enable TCP connection keepalive for RabbitMQ service. + +Default value: $rabbitmq::params::tcp_keepalive + +##### `tcp_recbuf` + +Data type: `Optional[Integer]` + +Corresponds to recbuf in RabbitMQ `tcp_listen_options` + +Default value: `undef` + +##### `tcp_sndbuf` + +Data type: `Optional[Integer]` + +Integer, corresponds to sndbuf in RabbitMQ `tcp_listen_options` + +Default value: `undef` + +##### `wipe_db_on_cookie_change` + +Data type: `Boolean` + +Boolean to determine if we should DESTROY AND DELETE the RabbitMQ database. + +Default value: $rabbitmq::params::wipe_db_on_cookie_change + +##### `rabbitmq_user` + +Data type: `String` + +OS dependent, default defined in param.pp. The system user the rabbitmq daemon runs as. + +Default value: $rabbitmq::params::rabbitmq_user + +##### `rabbitmq_group` + +Data type: `String` + +OS dependent, default defined in param.pp. The system group the rabbitmq daemon runs as. + +Default value: $rabbitmq::params::rabbitmq_group + +##### `rabbitmq_home` + +Data type: `Stdlib::Absolutepath` + +OS dependent. default defined in param.pp. The home directory of the rabbitmq deamon. + +Default value: $rabbitmq::params::rabbitmq_home + +##### `$rabbitmqadmin_package` + +OS dependent. default defined in param.pp. If undef: install rabbitmqadmin via archive, otherwise via package + +##### `$archive_options.` + +default defined in param.pp. Extra options to Archive resource to download rabbitmqadmin file + +##### `config_ranch` + +Data type: `Boolean` + + + +Default value: $rabbitmq::params::config_ranch + +##### `package_source` + +Data type: `Optional[String]` + + + +Default value: `undef` + +##### `package_provider` + +Data type: `Optional[String]` + + + +Default value: `undef` + +##### `ssl_management_fail_if_no_peer_cert` + +Data type: `Boolean` + + + +Default value: $rabbitmq::params::ssl_management_fail_if_no_peer_cert + +##### `rabbitmqadmin_package` + +Data type: `Optional[String]` + + + +Default value: $rabbitmq::params::rabbitmqadmin_package + +##### `archive_options` + +Data type: `Array` + + + +Default value: $rabbitmq::params::archive_options + +##### `loopback_users` + +Data type: `Array` + + + +Default value: $rabbitmq::params::loopback_users + +### rabbitmq::config + +Class: rabbitmq::config +Sets all the configuration values for RabbitMQ and creates the directories for +config and ssl. + +### rabbitmq::install + +Class rabbitmq::install +Ensures that rabbitmq-server exists + +### rabbitmq::install::rabbitmqadmin + +The rabbitmq::install::rabbitmqadmin class. + +### rabbitmq::management + +The rabbitmq::management class. + +### rabbitmq::params + +rabbitmq::params + +### rabbitmq::repo::apt + +requires + puppetlabs-apt + puppetlabs-stdlib + +#### Parameters + +The following parameters are available in the `rabbitmq::repo::apt` class. + +##### `location` + +Data type: `String` + + + +Default value: 'https://packagecloud.io/rabbitmq/rabbitmq-server' + +##### `repos` + +Data type: `String` + + + +Default value: 'main' + +##### `include_src` + +Data type: `Boolean` + + + +Default value: `false` + +##### `key` + +Data type: `String` + + + +Default value: '418A7F2FB0E1E6E7EABF6FE8C2E73424D59097AB' + +##### `key_source` + +Data type: `String` + + + +Default value: $rabbitmq::package_gpg_key + +##### `key_content` + +Data type: `Optional[String]` + + + +Default value: $rabbitmq::key_content + +##### `architecture` + +Data type: `Optional[String]` + + + +Default value: `undef` + +### rabbitmq::repo::rhel + +Class: rabbitmq::repo::rhel +Makes sure that the Packagecloud repo is installed + +#### Parameters + +The following parameters are available in the `rabbitmq::repo::rhel` class. + +##### `location` + +Data type: `Any` + + + +Default value: "https://packagecloud.io/rabbitmq/rabbitmq-server/el/${facts['os'][release][major]}/\$basearch" + +##### `key_source` + +Data type: `String` + + + +Default value: $rabbitmq::package_gpg_key + +### rabbitmq::server + +Class: rabbitmq::server + +This module manages the installation and config of the rabbitmq server + it has only been tested on certain version of debian-ish systems +Parameters: + [*port*] - port where rabbitmq server is hosted + [*delete_guest_user*] - rather or not to delete the default user + [*version*] - deprecated -- does nothing + [*package_name*] - name of rabbitmq package + [*service_name*] - name of rabbitmq service + [*service_ensure*] - desired ensure state for service + [*stomp_port*] - port stomp should be listening on + [*node_ip_address*] - ip address for rabbitmq to bind to + [*config*] - contents of config file + [*env_config*] - contents of env-config file + [*config_cluster*] - whether to configure a RabbitMQ cluster + [*cluster_nodes*] - which nodes to cluster with (including the current one) + [*cluster_node_type*] - Type of cluster node (disc/disk or ram) + [*erlang_cookie*] - erlang cookie, must be the same for all nodes in a cluster + [*wipe_db_on_cookie_change*] - whether to wipe the RabbitMQ data if the specified + erlang_cookie differs from the current one. This is a sad parameter: actually, + if the cookie indeed differs, then wiping the database is the *only* thing you + can do. You're only required to set this parameter to true as a sign that you + realise this. +Requires: + stdlib +Sample Usage: + +This module is used as backward compability layer for modules +which require rabbitmq::server instead of rabbitmq class. +It's still common uasge in many modules. + + +[Remember: No empty lines between comments and class definition] + +#### Parameters + +The following parameters are available in the `rabbitmq::server` class. + +##### `port` + +Data type: `Any` + + + +Default value: $rabbitmq::params::port + +##### `delete_guest_user` + +Data type: `Any` + + + +Default value: $rabbitmq::params::delete_guest_user + +##### `package_name` + +Data type: `Any` + + + +Default value: $rabbitmq::params::package_name + +##### `service_name` + +Data type: `Any` + + + +Default value: $rabbitmq::params::service_name + +##### `service_ensure` + +Data type: `Any` + + + +Default value: $rabbitmq::params::service_ensure + +##### `service_manage` + +Data type: `Any` + + + +Default value: $rabbitmq::params::service_manage + +##### `config_stomp` + +Data type: `Any` + + + +Default value: $rabbitmq::params::config_stomp + +##### `stomp_port` + +Data type: `Any` + + + +Default value: $rabbitmq::params::stomp_port + +##### `config_cluster` + +Data type: `Any` + + + +Default value: $rabbitmq::params::config_cluster + +##### `cluster_nodes` + +Data type: `Any` + + + +Default value: $rabbitmq::params::cluster_nodes + +##### `cluster_node_type` + +Data type: `Any` + + + +Default value: $rabbitmq::params::cluster_node_type + +##### `node_ip_address` + +Data type: `Any` + + + +Default value: $rabbitmq::params::node_ip_address + +##### `config` + +Data type: `Any` + + + +Default value: $rabbitmq::params::config + +##### `env_config` + +Data type: `Any` + + + +Default value: $rabbitmq::params::env_config + +##### `erlang_cookie` + +Data type: `Any` + + + +Default value: $rabbitmq::params::erlang_cookie + +##### `wipe_db_on_cookie_change` + +Data type: `Any` + + + +Default value: $rabbitmq::params::wipe_db_on_cookie_change + +### rabbitmq::service + +Class: rabbitmq::service + + This class manages the rabbitmq server service itself. + +Parameters: + +Actions: + +Requires: + +Sample Usage: + +#### Parameters + +The following parameters are available in the `rabbitmq::service` class. + +##### `service_ensure` + +Data type: `Enum['running', 'stopped']` + + + +Default value: $rabbitmq::service_ensure + +##### `service_manage` + +Data type: `Boolean` + + + +Default value: $rabbitmq::service_manage + +##### `service_name` + +Data type: `Any` + + + +Default value: $rabbitmq::service_name + +## Resource types + +### rabbitmq_binding + +Native type for managing rabbitmq bindings + +rabbitmq_binding { 'binding 1': + ensure => present, + source => 'myexchange', + destination => 'myqueue', + vhost => 'myvhost', + user => 'dan', + password => 'bar', + destination_type => 'queue', + routing_key => 'key1', + arguments => {}, +} + +rabbitmq_binding { 'binding 2': + ensure => present, + source => 'myexchange', + destination => 'myqueue', + vhost => 'myvhost', + user => 'dan', + password => 'bar', + destination_type => 'queue', + routing_key => 'key2', + arguments => {}, +} + +#### Examples + +##### Create a rabbitmq_binding + +```puppet +rabbitmq_binding { 'myexchange@myqueue@myvhost': + user => 'dan', + password => 'bar', + destination_type => 'queue', + routing_key => '#', + arguments => {}, + ensure => present, +} +``` + +##### Create bindings with same source / destination / vhost but different routing key using individual parameters + +```puppet + +``` + +#### Properties + +The following properties are available in the `rabbitmq_binding` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +##### `source` + +Valid values: %r{^\S+$} + +namevar + +source of binding + +##### `destination` + +Valid values: %r{^\S+$} + +namevar + +destination of binding + +##### `vhost` + +Valid values: %r{^\S+$} + +namevar + +vhost + +Default value: / + +##### `routing_key` + +Valid values: %r{^\S*$} + +namevar + +binding routing_key + +##### `destination_type` + +Valid values: %r{queue|exchange} + +binding destination_type + +Default value: queue + +##### `arguments` + +binding arguments + +#### Parameters + +The following parameters are available in the `rabbitmq_binding` type. + +##### `name` + +namevar + +resource name, either source@destination@vhost or arbitrary name with params + +##### `user` + +Valid values: %r{^\S+$} + +The user to use to connect to rabbitmq + +Default value: guest + +##### `password` + +Valid values: %r{\S+} + +The password to use to connect to rabbitmq + +Default value: guest + +### rabbitmq_erlang_cookie + +Type to manage the rabbitmq erlang cookie securely + +This is essentially a private type used by the rabbitmq::config class +to manage the erlang cookie. It replaces the rabbitmq_erlang_cookie fact +from earlier versions of this module. It manages the content of the cookie +usually located at "${rabbitmq_home}/.erlang.cookie", which includes +stopping the rabbitmq service and wiping out the database at +"${rabbitmq_home}/mnesia" if the user agrees to it. We don't recommend using +this type directly. + +#### Properties + +The following properties are available in the `rabbitmq_erlang_cookie` type. + +##### `content` + +Valid values: %r{^\S+$} + +Content of cookie + +#### Parameters + +The following parameters are available in the `rabbitmq_erlang_cookie` type. + +##### `path` + + + +##### `force` + +Valid values: `true`, `false` + + + +Default value: `false` + +##### `rabbitmq_user` + + + +Default value: rabbitmq + +##### `rabbitmq_group` + + + +Default value: rabbitmq + +##### `rabbitmq_home` + + + +Default value: /var/lib/rabbitmq + +##### `service_name` + +Valid values: %r{^\S+$} + + + +### rabbitmq_exchange + +Native type for managing rabbitmq exchanges + +#### Examples + +##### Create a rabbitmq_exchange + +```puppet +rabbitmq_exchange { 'myexchange@myvhost': + user => 'dan', + password => 'bar', + type => 'topic', + ensure => present, + internal => false, + auto_delete => false, + durable => true, + arguments => { + hash-header => 'message-distribution-hash' + } +} +``` + +#### Properties + +The following properties are available in the `rabbitmq_exchange` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +#### Parameters + +The following parameters are available in the `rabbitmq_exchange` type. + +##### `name` + +Valid values: %r{^\S*@\S+$} + +namevar + +Name of exchange + +##### `type` + +Valid values: %r{^\S+$} + +Exchange type to be set *on creation* + +##### `durable` + +Valid values: %r{^\S+$} + +Exchange durability to be set *on creation* + +Default value: `false` + +##### `auto_delete` + +Valid values: %r{^\S+$} + +Exchange auto delete option to be set *on creation* + +Default value: `false` + +##### `internal` + +Valid values: %r{^\S+$} + +Exchange internal option to be set *on creation* + +Default value: `false` + +##### `arguments` + +Exchange arguments example: {"hash-header": "message-distribution-hash"} + +##### `user` + +Valid values: %r{^\S+$} + +The user to use to connect to rabbitmq + +Default value: guest + +##### `password` + +Valid values: %r{\S+} + +The password to use to connect to rabbitmq + +Default value: guest + +### rabbitmq_parameter + +Type for managing rabbitmq parameters + +#### Examples + +##### Create some rabbitmq_parameter resources + +```puppet +rabbitmq_parameter { 'documentumShovel@/': + component_name => '', + value => { + 'src-uri' => 'amqp://', + 'src-queue' => 'my-queue', + 'dest-uri' => 'amqp://remote-server', + 'dest-queue' => 'another-queue', + }, +} +rabbitmq_parameter { 'documentumFed@/': + component_name => 'federation-upstream', + value => { + 'uri' => 'amqp://myserver', + 'expires' => '360000', + }, +} +``` + +#### Properties + +The following properties are available in the `rabbitmq_parameter` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +##### `component_name` + +The component_name to use when setting parameter, eg: shovel or federation + +##### `value` + +A hash of values to use with the component name you are setting + +#### Parameters + +The following parameters are available in the `rabbitmq_parameter` type. + +##### `name` + +Valid values: %r{^\S+@\S+$} + +namevar + +combination of name@vhost to set parameter for + +### rabbitmq_plugin + +manages rabbitmq plugins + +#### Examples + +##### query all currently enabled plugins + +```puppet +$ puppet resource rabbitmq_plugin +``` + +##### Ensure a rabbitmq_plugin resource + +```puppet +rabbitmq_plugin {'rabbitmq_stomp': + ensure => present, +} +``` + +#### Properties + +The following properties are available in the `rabbitmq_plugin` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +#### Parameters + +The following parameters are available in the `rabbitmq_plugin` type. + +##### `name` + +Valid values: %r{^\S+$} + +namevar + +The name of the plugin to enable + +##### `umask` + +Sets the octal umask to be used while creating this resource + +Default value: 0022 + +### rabbitmq_policy + +Type for managing rabbitmq policies + +#### Examples + +##### Create a rabbitmq_policy + +```puppet +rabbitmq_policy { 'ha-all@myvhost': + pattern => '.*', + priority => 0, + applyto => 'all', + definition => { + 'ha-mode' => 'all', + 'ha-sync-mode' => 'automatic', + }, +} +``` + +#### Properties + +The following properties are available in the `rabbitmq_policy` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +##### `pattern` + +policy pattern + +##### `applyto` + +Valid values: all, exchanges, queues + +policy apply to + +Default value: all + +##### `definition` + +policy definition + +##### `priority` + +Valid values: %r{^\d+$} + +policy priority + +Default value: 0 + +#### Parameters + +The following parameters are available in the `rabbitmq_policy` type. + +##### `name` + +Valid values: %r{^\S+@\S+$} + +namevar + +combination of policy@vhost to create policy for + +### rabbitmq_queue + +Native type for managing rabbitmq queue + +#### Examples + +##### Create a rabbitmq_queue + +```puppet +rabbitmq_queue { 'myqueue@myvhost': + ensure => present, + user => 'dan', + password => 'bar', + durable => true, + auto_delete => false, + arguments => { + x-message-ttl => 123, + x-dead-letter-exchange => 'other' + }, +} +``` + +#### Properties + +The following properties are available in the `rabbitmq_queue` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +#### Parameters + +The following parameters are available in the `rabbitmq_queue` type. + +##### `name` + +Valid values: %r{^\S*@\S+$} + +namevar + +Name of queue + +##### `durable` + +Valid values: %r{true|false} + +Queue is durable + +Default value: `true` + +##### `auto_delete` + +Valid values: %r{true|false} + +Queue will be auto deleted + +Default value: `false` + +##### `arguments` + +Queue arguments example: {x-message-ttl => 60, x-expires => 10} + +##### `user` + +Valid values: %r{^\S+$} + +The user to use to connect to rabbitmq + +Default value: guest + +##### `password` + +Valid values: %r{\S+} + +The password to use to connect to rabbitmq + +Default value: guest + +### rabbitmq_user + +Native type for managing rabbitmq users + +#### Examples + +##### query all current users + +```puppet +$ puppet resource rabbitmq_user +``` + +##### Configure a user, dan + +```puppet +rabbitmq_user { 'dan': + admin => true, + password => 'bar', +} +``` + +##### Optional parameter tags will set further rabbitmq tags like monitoring, policymaker, etc. + +```puppet +To set the administrator tag use admin-flag. +rabbitmq_user { 'dan': + admin => true, + password => 'bar', + tags => ['monitoring', 'tag1'], +} +``` + +#### Properties + +The following properties are available in the `rabbitmq_user` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +##### `password` + +User password to be set *on creation* and validated each run + +##### `admin` + +Valid values: %r{true|false} + +whether or not user should be an admin + +Default value: false + +##### `tags` + +additional tags for the user + +Default value: [] + +#### Parameters + +The following parameters are available in the `rabbitmq_user` type. + +##### `name` + +Valid values: %r{^\S+$} + +namevar + +Name of user + +### rabbitmq_user_permissions + +Type for managing rabbitmq user permissions + +#### Examples + +##### Define some rabbitmq_user_permissions + +```puppet +rabbitmq_user_permissions { 'dan@myvhost': + configure_permission => '.*', + read_permission => '.*', + write_permission => '.*', +} +``` + +#### Properties + +The following properties are available in the `rabbitmq_user_permissions` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +##### `configure_permission` + +regexp representing configuration permissions + +##### `read_permission` + +regexp representing read permissions + +##### `write_permission` + +regexp representing write permissions + +#### Parameters + +The following parameters are available in the `rabbitmq_user_permissions` type. + +##### `name` + +Valid values: %r{^\S+@\S+$} + +namevar + +combination of user@vhost to grant privileges to + +### rabbitmq_vhost + +Native type for managing rabbitmq vhosts + +#### Examples + +##### query all current vhosts + +```puppet +$ puppet resource rabbitmq_vhost` +``` + +##### Create a rabbitmq_vhost + +```puppet +rabbitmq_vhost { 'myvhost': + ensure => present, +} +``` + +#### Properties + +The following properties are available in the `rabbitmq_vhost` type. + +##### `ensure` + +Valid values: present, absent + +The basic property that the resource should be in. + +Default value: present + +#### Parameters + +The following parameters are available in the `rabbitmq_vhost` type. + +##### `name` + +Valid values: %r{^\S+$} + +namevar + +The name of the vhost to add +