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=0000000000000000000000000000000000000000;hb=24caa46729f80fbba4be8b9b26ebcb3acc4cb0fb;hp=7afb665ae162ffcfd2e48d3503291c380c7c1ba9;hpb=c7e7bcc28cc5dc48a7e284a3c82f33df27d1f57d;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/rabbitmq/REFERENCE.md b/3rdparty/modules/rabbitmq/REFERENCE.md deleted file mode 100644 index 7afb665ae..000000000 --- a/3rdparty/modules/rabbitmq/REFERENCE.md +++ /dev/null @@ -1,1968 +0,0 @@ -# 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 -