2 <!-- DO NOT EDIT: This document was generated by Puppet Strings -->
8 * [`rabbitmq`](#rabbitmq): A module to manage RabbitMQ
9 * [`rabbitmq::config`](#rabbitmqconfig): Class: rabbitmq::config Sets all the configuration values for RabbitMQ and creates the directories for config and ssl.
10 * [`rabbitmq::install`](#rabbitmqinstall): Class rabbitmq::install Ensures that rabbitmq-server exists
11 * [`rabbitmq::install::rabbitmqadmin`](#rabbitmqinstallrabbitmqadmin):
12 * [`rabbitmq::management`](#rabbitmqmanagement):
13 * [`rabbitmq::params`](#rabbitmqparams): OS Specific parameters and other settings
14 * [`rabbitmq::repo::apt`](#rabbitmqrepoapt): requires puppetlabs-apt puppetlabs-stdlib
15 * [`rabbitmq::repo::rhel`](#rabbitmqreporhel): Class: rabbitmq::repo::rhel Makes sure that the Packagecloud repo is installed
16 * [`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
17 * [`rabbitmq::service`](#rabbitmqservice): Class: rabbitmq::service This class manages the rabbitmq server service itself. Parameters: Actions: Requires: Sample Usage:
21 * [`rabbitmq_binding`](#rabbitmq_binding): Native type for managing rabbitmq bindings rabbitmq_binding { 'binding 1': ensure => present, source => 'myexchange'
22 * [`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
23 * [`rabbitmq_exchange`](#rabbitmq_exchange): Native type for managing rabbitmq exchanges
24 * [`rabbitmq_parameter`](#rabbitmq_parameter): Type for managing rabbitmq parameters
25 * [`rabbitmq_plugin`](#rabbitmq_plugin): manages rabbitmq plugins
26 * [`rabbitmq_policy`](#rabbitmq_policy): Type for managing rabbitmq policies
27 * [`rabbitmq_queue`](#rabbitmq_queue): Native type for managing rabbitmq queue
28 * [`rabbitmq_user`](#rabbitmq_user): Native type for managing rabbitmq users
29 * [`rabbitmq_user_permissions`](#rabbitmq_user_permissions): Type for managing rabbitmq user permissions
30 * [`rabbitmq_vhost`](#rabbitmq_vhost): Native type for managing rabbitmq vhosts
38 @param $loopback_users. default defined in param.pp. This option configures a list of users to allow access via the loopback interfaces
52 service_manage => false,
54 delete_guest_user => true,
58 ##### Offline installation from local mirror:
63 key_content => template('openstack/rabbit.pub.key'),
64 package_gpg_key => '/tmp/rabbit.pub.key',
68 ##### Use external package key source for any (apt/rpm) package provider:
72 package_gpg_key => 'http://www.some_site.some_domain/some_key.pub.key',
76 ##### To use RabbitMQ Environment Variables, use the parameters `environment_variables` e.g.:
82 environment_variables => {
83 'NODENAME' => 'node01',
84 'SERVICENAME' => 'RabbitMQ'
89 ##### Change RabbitMQ Config Variables in rabbitmq.config:
96 'hipe_compile' => true,
97 'frame_max' => 131072,
98 'log_levels' => "[{connection, info}]"
103 ##### Change Erlang Kernel Config Variables in rabbitmq.config
108 config_kernel_variables => {
109 'inet_dist_listen_min' => 9100,
110 'inet_dist_listen_max' => 9105,
115 ##### Change Management Plugin Config Variables in rabbitmq.config
119 config_management_variables => {
120 'rates_mode' => 'basic',
125 ##### Change Additional Config Variables in rabbitmq.config
129 config_additional_variables => {
130 'autocluster' => '[{consul_service, "rabbit"},{cluster_name, "rabbit"}]',
131 'foo' => '[{bar, "baz"}]'
134 This will result in the following config appended to the config file:
135 {autocluster, [{consul_service, "rabbit"},{cluster_name, "rabbit"}]},
136 {foo, [{bar, "baz"}]}
137 (This is required for the [autocluster plugin](https://github.com/aweber/rabbitmq-autocluster)
140 ##### Use RabbitMQ clustering facilities
144 config_cluster => true,
145 cluster_nodes => ['rabbit1', 'rabbit2'],
146 cluster_node_type => 'ram',
147 erlang_cookie => 'A_SECRET_COOKIE_STRING',
148 wipe_db_on_cookie_change => true,
154 The following parameters are available in the `rabbitmq` class.
160 If enabled sets up the management interface/plugin for RabbitMQ.
162 Default value: $rabbitmq::params::admin_enable
164 ##### `auth_backends`
166 Data type: `Optional[Array]`
168 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].
170 Default value: `undef`
172 ##### `cluster_node_type`
174 Data type: `Enum['ram', 'disk', 'disc']`
176 Choose between disc and ram nodes.
178 Default value: $rabbitmq::params::cluster_node_type
180 ##### `cluster_nodes`
184 An array of nodes for clustering.
186 Default value: $rabbitmq::params::cluster_nodes
188 ##### `cluster_partition_handling`
192 Value to set for `cluster_partition_handling` RabbitMQ configuration variable.
194 Default value: $rabbitmq::params::cluster_partition_handling
196 ##### `collect_statistics_interval`
198 Data type: `Optional[Integer]`
200 Set the collect_statistics_interval in rabbitmq.config
202 Default value: `undef`
208 The file to use as the rabbitmq.config template.
210 Default value: $rabbitmq::params::config
212 ##### `config_additional_variables`
216 Additional config variables in rabbitmq.config
218 Default value: $rabbitmq::params::config_additional_variables
220 ##### `config_cluster`
224 Enable or disable clustering support.
226 Default value: $rabbitmq::params::config_cluster
228 ##### `config_kernel_variables`
232 Hash of Erlang kernel configuration variables to set (see [Variables Configurable in rabbitmq.config](#variables-configurable-in-rabbitmq.config)).
234 Default value: $rabbitmq::params::config_kernel_variables
238 Data type: `Stdlib::Absolutepath`
240 The path to write the RabbitMQ configuration file to.
242 Default value: $rabbitmq::params::config_path
244 ##### `config_management_variables`
248 Hash of configuration variables for the [Management Plugin](https://www.rabbitmq.com/management.html).
250 Default value: $rabbitmq::params::config_management_variables
256 Enable or disable stomp.
258 Default value: $rabbitmq::params::config_stomp
260 ##### `config_shovel`
264 Enable or disable shovel.
266 Default value: $rabbitmq::params::config_shovel
268 ##### `config_shovel_statics`
272 Hash of static shovel configurations
274 Default value: $rabbitmq::params::config_shovel_statics
276 ##### `config_variables`
280 To set config variables in rabbitmq.config
282 Default value: $rabbitmq::params::config_variables
288 Username to set for the `default_user` in rabbitmq.config.
290 Default value: $rabbitmq::params::default_user
296 Password to set for the `default_user` in rabbitmq.config.
298 Default value: $rabbitmq::params::default_pass
300 ##### `delete_guest_user`
304 Controls whether default guest user is deleted.
306 Default value: $rabbitmq::params::delete_guest_user
312 The template file to use for rabbitmq_env.config.
314 Default value: $rabbitmq::params::env_config
316 ##### `env_config_path`
318 Data type: `Stdlib::Absolutepath`
320 The path to write the rabbitmq_env.config file to.
322 Default value: $rabbitmq::params::env_config_path
324 ##### `environment_variables`
328 RabbitMQ Environment Variables in rabbitmq_env.config
330 Default value: $rabbitmq::params::environment_variables
332 ##### `erlang_cookie`
334 Data type: `Optional[String]`
336 The erlang cookie to use for clustering - must be the same between all nodes. This value has no default and must be
337 set explicitly if using clustering. If you run Pacemaker and you don't want to use RabbitMQ buildin cluster, you can set config_cluster
338 to 'False' and set 'erlang_cookie'.
340 Default value: `undef`
344 Data type: `Variant[Integer[-1],Enum['unlimited'],Pattern[/^(infinity|\d+(:(infinity|\d+))?)$/]]`
346 Set rabbitmq file ulimit. Defaults to 16384. Only available on systems with `$::osfamily == 'Debian'` or
347 `$::osfamily == 'RedHat'`.
349 Default value: $rabbitmq::params::file_limit
353 Data type: `Optional[Integer]`
355 Set the heartbeat timeout interval, default is unset which uses the builtin server defaults of 60 seconds. Setting this
357 Default value: `undef`
359 ##### `inetrc_config`
363 Template to use for the inetrc config
365 Default value: $rabbitmq::params::inetrc_config
367 ##### `inetrc_config_path`
369 Data type: `Stdlib::Absolutepath`
371 Path of the file to push the inetrc config to.
373 Default value: $rabbitmq::params::inetrc_config_path
379 Whether to listen on ipv6
381 Default value: $rabbitmq::params::ipv6
385 Data type: `Optional[String]`
387 Interface to bind to (sets tcp_listeners parameter). By default, bind to all interfaces
388 to `0` will disable heartbeats.
390 Default value: `undef`
394 Data type: `Optional[String]`
396 Uses content method for Debian OS family. Should be a template for apt::source class. Overrides `package_gpg_key`
397 behavior, if enabled. Undefined by default.
399 Default value: `undef`
405 Set to true to enable LDAP auth.
407 Default value: $rabbitmq::params::ldap_auth
413 LDAP server to use for auth.
415 Default value: $rabbitmq::params::ldap_server
417 ##### `ldap_user_dn_pattern`
419 Data type: `Optional[String]`
421 User DN pattern for LDAP auth.
423 Default value: $rabbitmq::params::ldap_user_dn_pattern
425 ##### `ldap_other_bind`
429 How to bind to the LDAP server. Defaults to 'anon'.
431 Default value: $rabbitmq::params::ldap_other_bind
433 ##### `ldap_config_variables`
437 Hash of other LDAP config variables.
439 Default value: $rabbitmq::params::ldap_config_variables
445 Set to true to use SSL for the LDAP server.
447 Default value: $rabbitmq::params::ldap_use_ssl
451 Data type: `Integer[1, 65535]`
453 Numeric port for LDAP server.
455 Default value: $rabbitmq::params::ldap_port
461 Set to true to log LDAP auth.
463 Default value: $rabbitmq::params::ldap_log
465 ##### `manage_python`
469 If enabled, on platforms that don't provide a Python 2 package by default, ensure that the python package is
470 installed (for rabbitmqadmin). This will only apply if `admin_enable` and `service_manage` are set.
472 Default value: $rabbitmq::params::manage_python
474 ##### `management_hostname`
476 Data type: `Optional[String]`
478 The hostname for the RabbitMQ management interface.
480 Default value: `undef`
482 ##### `management_port`
484 Data type: `Integer[1, 65535]`
486 The port for the RabbitMQ management interface.
488 Default value: $rabbitmq::params::management_port
490 ##### `management_ip_address`
492 Data type: `Optional[String]`
494 Allows you to set the IP for management interface to bind to separately. Set to 127.0.0.1 to bind to
495 localhost only, or 0.0.0.0 to bind to all interfaces.
497 Default value: `undef`
499 ##### `management_ssl`
503 Enable/Disable SSL for the management port. Has an effect only if ssl => true.
505 Default value: $rabbitmq::params::management_ssl
507 ##### `node_ip_address`
509 Data type: `Optional[String]`
511 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
512 to bind to all interfaces.
514 Default value: `undef`
516 ##### `package_apt_pin`
518 Data type: `Optional[Variant[Numeric, String]]`
520 Whether to pin the package to a particular source
522 Default value: `undef`
524 ##### `package_ensure`
528 Determines the ensure state of the package. Set to installed by default, but could be changed to latest.
530 Default value: $rabbitmq::params::package_ensure
532 ##### `package_gpg_key`
534 Data type: `Optional[String]`
536 RPM package GPG key to import. Uses source method. Should be a URL for Debian/RedHat OS family, or a file name for
537 RedHat OS family. Set to https://packagecloud.io/gpg.key by default. Note, that `key_content`, if specified, would override this
538 parameter for Debian OS family.
540 Default value: $rabbitmq::params::package_gpg_key
544 Data type: `Variant[String, Array]`
546 Name(s) of the package(s) to install
548 Default value: $rabbitmq::params::package_name
556 Default value: $rabbitmq::params::port
562 Ensure that a repo with the official (and newer) RabbitMQ package is configured, along with its signing key.
563 Defaults to false (use system packages). This does not ensure that soft dependencies (like EPEL on RHEL systems) are present.
565 Default value: $rabbitmq::params::repos_ensure
567 ##### `service_ensure`
569 Data type: `Enum['running', 'stopped']`
571 The state of the service.
573 Default value: $rabbitmq::params::service_ensure
575 ##### `service_manage`
579 Determines if the service is managed.
581 Default value: $rabbitmq::params::service_manage
587 The name of the service to manage.
589 Default value: $rabbitmq::params::service_name
595 Configures the service for using SSL.
598 Default value: $rabbitmq::params::ssl
602 Data type: `Optional[Stdlib::Absolutepath]`
604 CA cert path to use for SSL.
606 Default value: `undef`
610 Data type: `Optional[Stdlib::Absolutepath]`
614 Default value: `undef`
616 ##### `ssl_cert_password`
618 Data type: `Optional[String]`
620 Password used when generating CSR.
622 Default value: `undef`
626 Data type: `Optional[Integer]`
628 SSL verification depth.
630 Default value: `undef`
634 Data type: `Optional[Stdlib::Absolutepath]`
636 Use this dhparam file [example: generate with `openssl dhparam -out /etc/rabbitmq/ssl/dhparam.pem 2048`
638 Default value: `undef`
644 Whether to use the erlang package's SSL (relies on the ssl_erl_path fact)
646 Default value: $rabbitmq::params::ssl_erl_dist
648 ##### `ssl_honor_cipher_order`
652 Force use of server cipher order
654 Default value: $rabbitmq::params::ssl_honor_cipher_order
656 ##### `ssl_interface`
658 Data type: `Optional[String]`
660 Interface for SSL listener to bind to
662 Default value: `undef`
666 Data type: `Optional[Stdlib::Absolutepath]`
670 Default value: `undef`
676 Configures the service to only use SSL. No cleartext TCP listeners will be created. Requires that ssl => true and
678 Default value: $rabbitmq::params::ssl_only
680 ##### `ssl_management_port`
682 Data type: `Integer[1, 65535]`
686 Default value: $rabbitmq::params::ssl_management_port
690 Data type: `Integer[1, 65535]`
692 SSL port for RabbitMQ
694 Default value: $rabbitmq::params::ssl_port
696 ##### `ssl_reuse_sessions`
702 Default value: $rabbitmq::params::ssl_reuse_sessions
704 ##### `ssl_secure_renegotiate`
708 Use ssl secure renegotiate
710 Default value: $rabbitmq::params::ssl_secure_renegotiate
712 ##### `ssl_stomp_port`
714 Data type: `Integer[1, 65535]`
718 Default value: $rabbitmq::params::ssl_stomp_port
722 Data type: `Enum['verify_none','verify_peer']`
724 rabbitmq.config SSL verify setting.
726 Default value: $rabbitmq::params::ssl_verify
728 ##### `ssl_fail_if_no_peer_cert`
732 rabbitmq.config `fail_if_no_peer_cert` setting.
734 Default value: $rabbitmq::params::ssl_fail_if_no_peer_cert
736 ##### `ssl_management_verify`
738 Data type: `Enum['verify_none','verify_peer']`
740 rabbitmq.config SSL verify setting for rabbitmq_management.
742 Default value: $rabbitmq::params::ssl_management_verify
744 ##### `ssl_manaagement_fail_if_no_peer_cert`
746 rabbitmq.config `fail_if_no_peer_cert` setting for rabbitmq_management.
750 Data type: `Optional[Array]`
752 Choose which SSL versions to enable. Example: `['tlsv1.2', 'tlsv1.1']` Note that it is recommended to disable `sslv3
753 and `tlsv1` to prevent against POODLE and BEAST attacks. Please see the [RabbitMQ SSL](https://www.rabbitmq.com/ssl.html) documentation
754 for more information.
756 Default value: `undef`
762 Support only a given list of SSL ciphers. Example: `['dhe_rsa,aes_256_cbc,sha','dhe_dss,aes_256_cbc,sha',
763 'ecdhe_rsa,aes_256_cbc,sha']`. Supported ciphers in your install can be listed with: rabbitmqctl eval 'ssl:cipher_suites().'
764 Functionality can be tested with cipherscan or similar tool: https://github.com/jvehent/cipherscan.git
766 Default value: $rabbitmq::params::ssl_ciphers
770 Data type: `Integer[1, 65535]`
772 The port to use for Stomp.
774 Default value: $rabbitmq::params::stomp_port
776 ##### `stomp_ssl_only`
780 Configures STOMP to only use SSL. No cleartext STOMP TCP listeners will be created. Requires setting
783 Default value: $rabbitmq::params::stomp_ssl_only
789 Enable to install the stomp plugin.
791 Default value: $rabbitmq::params::stomp_ensure
797 The size of the backlog on TCP connections.
799 Default value: $rabbitmq::params::tcp_backlog
801 ##### `tcp_keepalive`
805 Enable TCP connection keepalive for RabbitMQ service.
807 Default value: $rabbitmq::params::tcp_keepalive
811 Data type: `Optional[Integer]`
813 Corresponds to recbuf in RabbitMQ `tcp_listen_options`
815 Default value: `undef`
819 Data type: `Optional[Integer]`
821 Integer, corresponds to sndbuf in RabbitMQ `tcp_listen_options`
823 Default value: `undef`
825 ##### `wipe_db_on_cookie_change`
829 Boolean to determine if we should DESTROY AND DELETE the RabbitMQ database.
831 Default value: $rabbitmq::params::wipe_db_on_cookie_change
833 ##### `rabbitmq_user`
837 OS dependent, default defined in param.pp. The system user the rabbitmq daemon runs as.
839 Default value: $rabbitmq::params::rabbitmq_user
841 ##### `rabbitmq_group`
845 OS dependent, default defined in param.pp. The system group the rabbitmq daemon runs as.
847 Default value: $rabbitmq::params::rabbitmq_group
849 ##### `rabbitmq_home`
851 Data type: `Stdlib::Absolutepath`
853 OS dependent. default defined in param.pp. The home directory of the rabbitmq deamon.
855 Default value: $rabbitmq::params::rabbitmq_home
857 ##### `$rabbitmqadmin_package`
859 OS dependent. default defined in param.pp. If undef: install rabbitmqadmin via archive, otherwise via package
861 ##### `$archive_options.`
863 default defined in param.pp. Extra options to Archive resource to download rabbitmqadmin file
871 Default value: $rabbitmq::params::config_ranch
873 ##### `package_source`
875 Data type: `Optional[String]`
879 Default value: `undef`
881 ##### `package_provider`
883 Data type: `Optional[String]`
887 Default value: `undef`
889 ##### `ssl_management_fail_if_no_peer_cert`
895 Default value: $rabbitmq::params::ssl_management_fail_if_no_peer_cert
897 ##### `rabbitmqadmin_package`
899 Data type: `Optional[String]`
903 Default value: $rabbitmq::params::rabbitmqadmin_package
905 ##### `archive_options`
911 Default value: $rabbitmq::params::archive_options
913 ##### `loopback_users`
919 Default value: $rabbitmq::params::loopback_users
923 Class: rabbitmq::config
924 Sets all the configuration values for RabbitMQ and creates the directories for
927 ### rabbitmq::install
929 Class rabbitmq::install
930 Ensures that rabbitmq-server exists
932 ### rabbitmq::install::rabbitmqadmin
934 The rabbitmq::install::rabbitmqadmin class.
936 ### rabbitmq::management
938 The rabbitmq::management class.
944 ### rabbitmq::repo::apt
952 The following parameters are available in the `rabbitmq::repo::apt` class.
960 Default value: 'https://packagecloud.io/rabbitmq/rabbitmq-server'
968 Default value: 'main'
976 Default value: `false`
984 Default value: '418A7F2FB0E1E6E7EABF6FE8C2E73424D59097AB'
992 Default value: $rabbitmq::package_gpg_key
996 Data type: `Optional[String]`
1000 Default value: $rabbitmq::key_content
1002 ##### `architecture`
1004 Data type: `Optional[String]`
1008 Default value: `undef`
1010 ### rabbitmq::repo::rhel
1012 Class: rabbitmq::repo::rhel
1013 Makes sure that the Packagecloud repo is installed
1017 The following parameters are available in the `rabbitmq::repo::rhel` class.
1025 Default value: "https://packagecloud.io/rabbitmq/rabbitmq-server/el/${facts['os'][release][major]}/\$basearch"
1033 Default value: $rabbitmq::package_gpg_key
1035 ### rabbitmq::server
1037 Class: rabbitmq::server
1039 This module manages the installation and config of the rabbitmq server
1040 it has only been tested on certain version of debian-ish systems
1042 [*port*] - port where rabbitmq server is hosted
1043 [*delete_guest_user*] - rather or not to delete the default user
1044 [*version*] - deprecated -- does nothing
1045 [*package_name*] - name of rabbitmq package
1046 [*service_name*] - name of rabbitmq service
1047 [*service_ensure*] - desired ensure state for service
1048 [*stomp_port*] - port stomp should be listening on
1049 [*node_ip_address*] - ip address for rabbitmq to bind to
1050 [*config*] - contents of config file
1051 [*env_config*] - contents of env-config file
1052 [*config_cluster*] - whether to configure a RabbitMQ cluster
1053 [*cluster_nodes*] - which nodes to cluster with (including the current one)
1054 [*cluster_node_type*] - Type of cluster node (disc/disk or ram)
1055 [*erlang_cookie*] - erlang cookie, must be the same for all nodes in a cluster
1056 [*wipe_db_on_cookie_change*] - whether to wipe the RabbitMQ data if the specified
1057 erlang_cookie differs from the current one. This is a sad parameter: actually,
1058 if the cookie indeed differs, then wiping the database is the *only* thing you
1059 can do. You're only required to set this parameter to true as a sign that you
1065 This module is used as backward compability layer for modules
1066 which require rabbitmq::server instead of rabbitmq class.
1067 It's still common uasge in many modules.
1070 [Remember: No empty lines between comments and class definition]
1074 The following parameters are available in the `rabbitmq::server` class.
1082 Default value: $rabbitmq::params::port
1084 ##### `delete_guest_user`
1090 Default value: $rabbitmq::params::delete_guest_user
1092 ##### `package_name`
1098 Default value: $rabbitmq::params::package_name
1100 ##### `service_name`
1106 Default value: $rabbitmq::params::service_name
1108 ##### `service_ensure`
1114 Default value: $rabbitmq::params::service_ensure
1116 ##### `service_manage`
1122 Default value: $rabbitmq::params::service_manage
1124 ##### `config_stomp`
1130 Default value: $rabbitmq::params::config_stomp
1138 Default value: $rabbitmq::params::stomp_port
1140 ##### `config_cluster`
1146 Default value: $rabbitmq::params::config_cluster
1148 ##### `cluster_nodes`
1154 Default value: $rabbitmq::params::cluster_nodes
1156 ##### `cluster_node_type`
1162 Default value: $rabbitmq::params::cluster_node_type
1164 ##### `node_ip_address`
1170 Default value: $rabbitmq::params::node_ip_address
1178 Default value: $rabbitmq::params::config
1186 Default value: $rabbitmq::params::env_config
1188 ##### `erlang_cookie`
1194 Default value: $rabbitmq::params::erlang_cookie
1196 ##### `wipe_db_on_cookie_change`
1202 Default value: $rabbitmq::params::wipe_db_on_cookie_change
1204 ### rabbitmq::service
1206 Class: rabbitmq::service
1208 This class manages the rabbitmq server service itself.
1220 The following parameters are available in the `rabbitmq::service` class.
1222 ##### `service_ensure`
1224 Data type: `Enum['running', 'stopped']`
1228 Default value: $rabbitmq::service_ensure
1230 ##### `service_manage`
1232 Data type: `Boolean`
1236 Default value: $rabbitmq::service_manage
1238 ##### `service_name`
1244 Default value: $rabbitmq::service_name
1248 ### rabbitmq_binding
1250 Native type for managing rabbitmq bindings
1252 rabbitmq_binding { 'binding 1':
1254 source => 'myexchange',
1255 destination => 'myqueue',
1259 destination_type => 'queue',
1260 routing_key => 'key1',
1264 rabbitmq_binding { 'binding 2':
1266 source => 'myexchange',
1267 destination => 'myqueue',
1271 destination_type => 'queue',
1272 routing_key => 'key2',
1278 ##### Create a rabbitmq_binding
1281 rabbitmq_binding { 'myexchange@myqueue@myvhost':
1284 destination_type => 'queue',
1291 ##### Create bindings with same source / destination / vhost but different routing key using individual parameters
1299 The following properties are available in the `rabbitmq_binding` type.
1303 Valid values: present, absent
1305 The basic property that the resource should be in.
1307 Default value: present
1311 Valid values: %r{^\S+$}
1319 Valid values: %r{^\S+$}
1323 destination of binding
1327 Valid values: %r{^\S+$}
1337 Valid values: %r{^\S*$}
1343 ##### `destination_type`
1345 Valid values: %r{queue|exchange}
1347 binding destination_type
1349 Default value: queue
1357 The following parameters are available in the `rabbitmq_binding` type.
1363 resource name, either source@destination@vhost or arbitrary name with params
1367 Valid values: %r{^\S+$}
1369 The user to use to connect to rabbitmq
1371 Default value: guest
1375 Valid values: %r{\S+}
1377 The password to use to connect to rabbitmq
1379 Default value: guest
1381 ### rabbitmq_erlang_cookie
1383 Type to manage the rabbitmq erlang cookie securely
1385 This is essentially a private type used by the rabbitmq::config class
1386 to manage the erlang cookie. It replaces the rabbitmq_erlang_cookie fact
1387 from earlier versions of this module. It manages the content of the cookie
1388 usually located at "${rabbitmq_home}/.erlang.cookie", which includes
1389 stopping the rabbitmq service and wiping out the database at
1390 "${rabbitmq_home}/mnesia" if the user agrees to it. We don't recommend using
1395 The following properties are available in the `rabbitmq_erlang_cookie` type.
1399 Valid values: %r{^\S+$}
1405 The following parameters are available in the `rabbitmq_erlang_cookie` type.
1413 Valid values: `true`, `false`
1417 Default value: `false`
1419 ##### `rabbitmq_user`
1423 Default value: rabbitmq
1425 ##### `rabbitmq_group`
1429 Default value: rabbitmq
1431 ##### `rabbitmq_home`
1435 Default value: /var/lib/rabbitmq
1437 ##### `service_name`
1439 Valid values: %r{^\S+$}
1443 ### rabbitmq_exchange
1445 Native type for managing rabbitmq exchanges
1449 ##### Create a rabbitmq_exchange
1452 rabbitmq_exchange { 'myexchange@myvhost':
1458 auto_delete => false,
1461 hash-header => 'message-distribution-hash'
1468 The following properties are available in the `rabbitmq_exchange` type.
1472 Valid values: present, absent
1474 The basic property that the resource should be in.
1476 Default value: present
1480 The following parameters are available in the `rabbitmq_exchange` type.
1484 Valid values: %r{^\S*@\S+$}
1492 Valid values: %r{^\S+$}
1494 Exchange type to be set *on creation*
1498 Valid values: %r{^\S+$}
1500 Exchange durability to be set *on creation*
1502 Default value: `false`
1506 Valid values: %r{^\S+$}
1508 Exchange auto delete option to be set *on creation*
1510 Default value: `false`
1514 Valid values: %r{^\S+$}
1516 Exchange internal option to be set *on creation*
1518 Default value: `false`
1522 Exchange arguments example: {"hash-header": "message-distribution-hash"}
1526 Valid values: %r{^\S+$}
1528 The user to use to connect to rabbitmq
1530 Default value: guest
1534 Valid values: %r{\S+}
1536 The password to use to connect to rabbitmq
1538 Default value: guest
1540 ### rabbitmq_parameter
1542 Type for managing rabbitmq parameters
1546 ##### Create some rabbitmq_parameter resources
1549 rabbitmq_parameter { 'documentumShovel@/':
1550 component_name => '',
1552 'src-uri' => 'amqp://',
1553 'src-queue' => 'my-queue',
1554 'dest-uri' => 'amqp://remote-server',
1555 'dest-queue' => 'another-queue',
1558 rabbitmq_parameter { 'documentumFed@/':
1559 component_name => 'federation-upstream',
1561 'uri' => 'amqp://myserver',
1562 'expires' => '360000',
1569 The following properties are available in the `rabbitmq_parameter` type.
1573 Valid values: present, absent
1575 The basic property that the resource should be in.
1577 Default value: present
1579 ##### `component_name`
1581 The component_name to use when setting parameter, eg: shovel or federation
1585 A hash of values to use with the component name you are setting
1589 The following parameters are available in the `rabbitmq_parameter` type.
1593 Valid values: %r{^\S+@\S+$}
1597 combination of name@vhost to set parameter for
1601 manages rabbitmq plugins
1605 ##### query all currently enabled plugins
1608 $ puppet resource rabbitmq_plugin
1611 ##### Ensure a rabbitmq_plugin resource
1614 rabbitmq_plugin {'rabbitmq_stomp':
1621 The following properties are available in the `rabbitmq_plugin` type.
1625 Valid values: present, absent
1627 The basic property that the resource should be in.
1629 Default value: present
1633 The following parameters are available in the `rabbitmq_plugin` type.
1637 Valid values: %r{^\S+$}
1641 The name of the plugin to enable
1645 Sets the octal umask to be used while creating this resource
1651 Type for managing rabbitmq policies
1655 ##### Create a rabbitmq_policy
1658 rabbitmq_policy { 'ha-all@myvhost':
1664 'ha-sync-mode' => 'automatic',
1671 The following properties are available in the `rabbitmq_policy` type.
1675 Valid values: present, absent
1677 The basic property that the resource should be in.
1679 Default value: present
1687 Valid values: all, exchanges, queues
1699 Valid values: %r{^\d+$}
1707 The following parameters are available in the `rabbitmq_policy` type.
1711 Valid values: %r{^\S+@\S+$}
1715 combination of policy@vhost to create policy for
1719 Native type for managing rabbitmq queue
1723 ##### Create a rabbitmq_queue
1726 rabbitmq_queue { 'myqueue@myvhost':
1731 auto_delete => false,
1733 x-message-ttl => 123,
1734 x-dead-letter-exchange => 'other'
1741 The following properties are available in the `rabbitmq_queue` type.
1745 Valid values: present, absent
1747 The basic property that the resource should be in.
1749 Default value: present
1753 The following parameters are available in the `rabbitmq_queue` type.
1757 Valid values: %r{^\S*@\S+$}
1765 Valid values: %r{true|false}
1769 Default value: `true`
1773 Valid values: %r{true|false}
1775 Queue will be auto deleted
1777 Default value: `false`
1781 Queue arguments example: {x-message-ttl => 60, x-expires => 10}
1785 Valid values: %r{^\S+$}
1787 The user to use to connect to rabbitmq
1789 Default value: guest
1793 Valid values: %r{\S+}
1795 The password to use to connect to rabbitmq
1797 Default value: guest
1801 Native type for managing rabbitmq users
1805 ##### query all current users
1808 $ puppet resource rabbitmq_user
1811 ##### Configure a user, dan
1814 rabbitmq_user { 'dan':
1820 ##### Optional parameter tags will set further rabbitmq tags like monitoring, policymaker, etc.
1823 To set the administrator tag use admin-flag.
1824 rabbitmq_user { 'dan':
1827 tags => ['monitoring', 'tag1'],
1833 The following properties are available in the `rabbitmq_user` type.
1837 Valid values: present, absent
1839 The basic property that the resource should be in.
1841 Default value: present
1845 User password to be set *on creation* and validated each run
1849 Valid values: %r{true|false}
1851 whether or not user should be an admin
1853 Default value: false
1857 additional tags for the user
1863 The following parameters are available in the `rabbitmq_user` type.
1867 Valid values: %r{^\S+$}
1873 ### rabbitmq_user_permissions
1875 Type for managing rabbitmq user permissions
1879 ##### Define some rabbitmq_user_permissions
1882 rabbitmq_user_permissions { 'dan@myvhost':
1883 configure_permission => '.*',
1884 read_permission => '.*',
1885 write_permission => '.*',
1891 The following properties are available in the `rabbitmq_user_permissions` type.
1895 Valid values: present, absent
1897 The basic property that the resource should be in.
1899 Default value: present
1901 ##### `configure_permission`
1903 regexp representing configuration permissions
1905 ##### `read_permission`
1907 regexp representing read permissions
1909 ##### `write_permission`
1911 regexp representing write permissions
1915 The following parameters are available in the `rabbitmq_user_permissions` type.
1919 Valid values: %r{^\S+@\S+$}
1923 combination of user@vhost to grant privileges to
1927 Native type for managing rabbitmq vhosts
1931 ##### query all current vhosts
1934 $ puppet resource rabbitmq_vhost`
1937 ##### Create a rabbitmq_vhost
1940 rabbitmq_vhost { 'myvhost':
1947 The following properties are available in the `rabbitmq_vhost` type.
1951 Valid values: present, absent
1953 The basic property that the resource should be in.
1955 Default value: present
1959 The following parameters are available in the `rabbitmq_vhost` type.
1963 Valid values: %r{^\S+$}
1967 The name of the vhost to add