From e90dcbdeb3e8d0d0fe13f1f089a8a832d8435786 Mon Sep 17 00:00:00 2001 From: Dennis Hoppe Date: Fri, 3 May 2019 12:06:43 +0200 Subject: [PATCH 1/4] Use data-in-modules, instead of params.pp --- data/common.yaml | 99 +++++++++++++++++ data/family/Archlinux.yaml | 3 + data/family/Debian.yaml | 4 + data/family/FreeBSD.yaml | 6 ++ data/family/OpenBSD.yaml | 5 + data/family/RedHat.yaml | 4 + data/family/Suse.yaml | 5 + hiera.yaml | 16 +++ manifests/init.pp | 151 +++++++++++++------------- manifests/install/rabbitmqadmin.pp | 2 +- manifests/params.pp | 166 ----------------------------- manifests/server.pp | 34 +++--- spec/classes/rabbitmq_spec.rb | 12 --- 13 files changed, 237 insertions(+), 270 deletions(-) create mode 100644 data/common.yaml create mode 100644 data/family/Archlinux.yaml create mode 100644 data/family/Debian.yaml create mode 100644 data/family/FreeBSD.yaml create mode 100644 data/family/OpenBSD.yaml create mode 100644 data/family/RedHat.yaml create mode 100644 data/family/Suse.yaml create mode 100644 hiera.yaml delete mode 100644 manifests/params.pp diff --git a/data/common.yaml b/data/common.yaml new file mode 100644 index 000000000..ce9887fc3 --- /dev/null +++ b/data/common.yaml @@ -0,0 +1,99 @@ +--- +rabbitmq::admin_enable: true +rabbitmq::management_enable: false +rabbitmq::use_config_file_for_plugins: false +rabbitmq::cluster_node_type: 'disc' +rabbitmq::cluster_nodes: [] +rabbitmq::config: 'rabbitmq/rabbitmq.config.erb' +rabbitmq::config_cluster: false +rabbitmq::config_path: '/etc/rabbitmq/rabbitmq.config' +rabbitmq::config_ranch: true +rabbitmq::config_stomp: false +rabbitmq::config_shovel: false +rabbitmq::config_shovel_statics: {} +rabbitmq::default_user: 'guest' +rabbitmq::default_pass: 'guest' +rabbitmq::delete_guest_user: false +rabbitmq::env_config: 'rabbitmq/rabbitmq-env.conf.erb' +rabbitmq::env_config_path: '/etc/rabbitmq/rabbitmq-env.conf' +rabbitmq::erlang_cookie: ~ +rabbitmq::interface: ~ +rabbitmq::management_ip_address: ~ +rabbitmq::management_port: 15672 +rabbitmq::management_ssl: true +rabbitmq::management_hostname: ~ +rabbitmq::node_ip_address: ~ +rabbitmq::package_apt_pin: ~ +rabbitmq::package_ensure: 'installed' +rabbitmq::package_gpg_key: ~ +rabbitmq::package_name: 'rabbitmq' +rabbitmq::package_source: ~ +rabbitmq::package_provider: ~ +rabbitmq::repos_ensure: false +rabbitmq::manage_python: true +rabbitmq::python_package: 'python' +rabbitmq::rabbitmq_user: 'rabbitmq' +rabbitmq::rabbitmq_group: 'rabbitmq' +rabbitmq::rabbitmq_home: '/var/lib/rabbitmq' +rabbitmq::port: 5672 +rabbitmq::tcp_keepalive: false +rabbitmq::tcp_backlog: 128 +rabbitmq::tcp_sndbuf: ~ +rabbitmq::tcp_recbuf: ~ +rabbitmq::heartbeat: ~ +rabbitmq::service_ensure: 'running' +rabbitmq::service_manage: true +rabbitmq::service_name: 'rabbitmq' +rabbitmq::ssl: false +rabbitmq::ssl_only: false +rabbitmq::ssl_cacert: ~ +rabbitmq::ssl_cert: ~ +rabbitmq::ssl_key: ~ +rabbitmq::ssl_depth: ~ +rabbitmq::ssl_cert_password: ~ +rabbitmq::ssl_port: 5671 +rabbitmq::ssl_interface: ~ +rabbitmq::ssl_management_port: 15671 +rabbitmq::ssl_stomp_port: 6164 +rabbitmq::ssl_verify: 'verify_none' +rabbitmq::ssl_fail_if_no_peer_cert: false +rabbitmq::ssl_management_verify: 'verify_none' +rabbitmq::ssl_management_fail_if_no_peer_cert: false +rabbitmq::ssl_versions: ~ +rabbitmq::ssl_secure_renegotiate: true +rabbitmq::ssl_reuse_sessions: true +rabbitmq::ssl_honor_cipher_order: true +rabbitmq::ssl_dhfile: ~ +rabbitmq::ssl_ciphers: [] +rabbitmq::stomp_ensure: false +rabbitmq::ldap_auth: false +rabbitmq::ldap_server: 'ldap' +rabbitmq::ldap_user_dn_pattern: ~ +rabbitmq::ldap_other_bind: 'anon' +rabbitmq::ldap_use_ssl: false +rabbitmq::ldap_port: 389 +rabbitmq::ldap_log: false +rabbitmq::ldap_config_variables: {} +rabbitmq::stomp_port: 6163 +rabbitmq::stomp_ssl_only: false +rabbitmq::wipe_db_on_cookie_change: false +rabbitmq::cluster_partition_handling: 'ignore' +rabbitmq::file_limit: 16384 +rabbitmq::environment_variables: + 'LC_ALL': 'en_US.UTF-8' +rabbitmq::config_variables: {} +rabbitmq::config_kernel_variables: {} +rabbitmq::config_management_variables: {} +rabbitmq::config_additional_variables: {} +rabbitmq::auth_backends: ~ +rabbitmq::key_content: ~ +rabbitmq::collect_statistics_interval: ~ +rabbitmq::ipv6: false +rabbitmq::inetrc_config: 'rabbitmq/inetrc.erb' +rabbitmq::inetrc_config_path: '/etc/rabbitmq/inetrc' +rabbitmq::ssl_erl_dist: false +rabbitmq::rabbitmqadmin_package: ~ +rabbitmq::archive_options: [] +rabbitmq::loopback_users: + - 'guest' +rabbitmq::service_restart: true diff --git a/data/family/Archlinux.yaml b/data/family/Archlinux.yaml new file mode 100644 index 000000000..62f41ffe8 --- /dev/null +++ b/data/family/Archlinux.yaml @@ -0,0 +1,3 @@ +--- +rabbitmq::python_package: 'python2' +rabbitmq::rabbitmqadmin_package: 'rabbitmqadmin' diff --git a/data/family/Debian.yaml b/data/family/Debian.yaml new file mode 100644 index 000000000..77d8d0f03 --- /dev/null +++ b/data/family/Debian.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq::package_name: 'rabbitmq-server' +rabbitmq::service_name: 'rabbitmq-server' +rabbitmq::package_gpg_key: 'https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey' diff --git a/data/family/FreeBSD.yaml b/data/family/FreeBSD.yaml new file mode 100644 index 000000000..e7929d23b --- /dev/null +++ b/data/family/FreeBSD.yaml @@ -0,0 +1,6 @@ +--- +rabbitmq::python_package: 'python2' +rabbitmq::rabbitmq_home: '/var/db/rabbitmq' +rabbitmq::config_path: '/usr/local/etc/rabbitmq/rabbitmq.config' +rabbitmq::env_config_path: '/usr/loca/etc/rabbitmq/rabbitmq-env.conf' +rabbitmq::inetrc_config_path: '/usr/local/etc/rabbitmq/inetrc' diff --git a/data/family/OpenBSD.yaml b/data/family/OpenBSD.yaml new file mode 100644 index 000000000..a99a5069f --- /dev/null +++ b/data/family/OpenBSD.yaml @@ -0,0 +1,5 @@ +--- +rabbitmq::python_package: 'python2' +rabbitmq::rabbitmq_user: '_rabbitmq' +rabbitmq::rabbitmq_group: '_rabbitmq' +rabbitmq::rabbitmq_home: '/var/rabbitmq' diff --git a/data/family/RedHat.yaml b/data/family/RedHat.yaml new file mode 100644 index 000000000..521319dcc --- /dev/null +++ b/data/family/RedHat.yaml @@ -0,0 +1,4 @@ +--- +rabbitmq::package_name: 'rabbitmq-server' +rabbitmq::service_name: 'rabbitmq-server' +rabbitmq::package_gpg_key: 'https://www.rabbitmq.com/rabbitmq-release-signing-key.asc' diff --git a/data/family/Suse.yaml b/data/family/Suse.yaml new file mode 100644 index 000000000..3cc0a40ea --- /dev/null +++ b/data/family/Suse.yaml @@ -0,0 +1,5 @@ +--- +rabbitmq::package_name: + - 'rabbitmq-server' + - 'rabbitmq-server-plugins' +rabbitmq::service_name: 'rabbitmq-server' diff --git a/hiera.yaml b/hiera.yaml new file mode 100644 index 000000000..e6158ddfb --- /dev/null +++ b/hiera.yaml @@ -0,0 +1,16 @@ +--- +version: 5 + +defaults: + datadir: 'data' + data_hash: 'yaml_data' + +hierarchy: + - name: 'Major Version' + path: "os/%{facts.os.name}-%{facts.os.release.major}.yaml" + - name: 'Distribution Name' + path: "os/%{facts.os.name}.yaml" + - name: 'Operating System Family' + path: "family/%{facts.os.family}.yaml" + - name: 'Common' + path: 'common.yaml' diff --git a/manifests/init.pp b/manifests/init.pp index cd4737912..de98f98c9 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -198,6 +198,8 @@ # Name(s) of the package(s) to install # @param port # The RabbitMQ port. +# @param python_package +# Name of the package required by rabbitmqadmin. # @param repos_ensure # 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. @@ -288,102 +290,103 @@ # This option configures a list of users to allow access via the loopback interfaces # class rabbitmq( - Boolean $admin_enable = $rabbitmq::params::admin_enable, - Boolean $management_enable = $rabbitmq::params::management_enable, - Boolean $use_config_file_for_plugins = $rabbitmq::params::use_config_file_for_plugins, - Enum['ram', 'disk', 'disc'] $cluster_node_type = $rabbitmq::params::cluster_node_type, - Array $cluster_nodes = $rabbitmq::params::cluster_nodes, - String $config = $rabbitmq::params::config, - Boolean $config_cluster = $rabbitmq::params::config_cluster, - Stdlib::Absolutepath $config_path = $rabbitmq::params::config_path, - Boolean $config_ranch = $rabbitmq::params::config_ranch, - Boolean $config_stomp = $rabbitmq::params::config_stomp, - Boolean $config_shovel = $rabbitmq::params::config_shovel, - Hash $config_shovel_statics = $rabbitmq::params::config_shovel_statics, - String $default_user = $rabbitmq::params::default_user, - String $default_pass = $rabbitmq::params::default_pass, - Boolean $delete_guest_user = $rabbitmq::params::delete_guest_user, - String $env_config = $rabbitmq::params::env_config, - Stdlib::Absolutepath $env_config_path = $rabbitmq::params::env_config_path, + Boolean $admin_enable = true, + Boolean $management_enable = false, + Boolean $use_config_file_for_plugins = false, + Enum['ram', 'disk', 'disc'] $cluster_node_type = 'disc', + Array $cluster_nodes = [], + String $config = 'rabbitmq/rabbitmq.config.erb', + Boolean $config_cluster = false, + Stdlib::Absolutepath $config_path = '/etc/rabbitmq/rabbitmq.config', + Boolean $config_ranch = true, + Boolean $config_stomp = false, + Boolean $config_shovel = false, + Hash $config_shovel_statics = {}, + String $default_user = 'guest', + String $default_pass = 'guest', + Boolean $delete_guest_user = false, + String $env_config = 'rabbitmq/rabbitmq-env.conf.erb', + Stdlib::Absolutepath $env_config_path = '/etc/rabbitmq/rabbitmq-env.conf', Optional[String] $erlang_cookie = undef, Optional[String] $interface = undef, Optional[String] $management_ip_address = undef, - Integer[1, 65535] $management_port = $rabbitmq::params::management_port, - Boolean $management_ssl = $rabbitmq::params::management_ssl, + Integer[1, 65535] $management_port = 15672, + Boolean $management_ssl = true, Optional[String] $management_hostname = undef, Optional[String] $node_ip_address = undef, Optional[Variant[Numeric, String]] $package_apt_pin = undef, - String $package_ensure = $rabbitmq::params::package_ensure, - Optional[String] $package_gpg_key = $rabbitmq::params::package_gpg_key, - Variant[String, Array] $package_name = $rabbitmq::params::package_name, + String $package_ensure = 'installed', + Optional[String] $package_gpg_key = undef, + Variant[String, Array] $package_name = 'rabbitmq', Optional[String] $package_source = undef, Optional[String] $package_provider = undef, - Boolean $repos_ensure = $rabbitmq::params::repos_ensure, - Boolean $manage_python = $rabbitmq::params::manage_python, - String $rabbitmq_user = $rabbitmq::params::rabbitmq_user, - String $rabbitmq_group = $rabbitmq::params::rabbitmq_group, - Stdlib::Absolutepath $rabbitmq_home = $rabbitmq::params::rabbitmq_home, - Integer $port = $rabbitmq::params::port, - Boolean $tcp_keepalive = $rabbitmq::params::tcp_keepalive, - Integer $tcp_backlog = $rabbitmq::params::tcp_backlog, + Boolean $repos_ensure = false, + Boolean $manage_python = true, + String $python_package = 'python', + String $rabbitmq_user = 'rabbitmq', + String $rabbitmq_group = 'rabbitmq', + Stdlib::Absolutepath $rabbitmq_home = '/var/lib/rabbitmq', + Integer $port = 5672, + Boolean $tcp_keepalive = false, + Integer $tcp_backlog = 128, Optional[Integer] $tcp_sndbuf = undef, Optional[Integer] $tcp_recbuf = undef, Optional[Integer] $heartbeat = undef, - Enum['running', 'stopped'] $service_ensure = $rabbitmq::params::service_ensure, - Boolean $service_manage = $rabbitmq::params::service_manage, - String $service_name = $rabbitmq::params::service_name, - Boolean $ssl = $rabbitmq::params::ssl, - Boolean $ssl_only = $rabbitmq::params::ssl_only, + Enum['running', 'stopped'] $service_ensure = 'running', + Boolean $service_manage = true, + String $service_name = 'rabbitmq', + Boolean $ssl = false, + Boolean $ssl_only = false, Optional[Stdlib::Absolutepath] $ssl_cacert = undef, Optional[Stdlib::Absolutepath] $ssl_cert = undef, Optional[Stdlib::Absolutepath] $ssl_key = undef, Optional[Integer] $ssl_depth = undef, Optional[String] $ssl_cert_password = undef, - Integer[1, 65535] $ssl_port = $rabbitmq::params::ssl_port, + Integer[1, 65535] $ssl_port = 5671, Optional[String] $ssl_interface = undef, - Integer[1, 65535] $ssl_management_port = $rabbitmq::params::ssl_management_port, - Integer[1, 65535] $ssl_stomp_port = $rabbitmq::params::ssl_stomp_port, - Enum['verify_none','verify_peer'] $ssl_verify = $rabbitmq::params::ssl_verify, - Boolean $ssl_fail_if_no_peer_cert = $rabbitmq::params::ssl_fail_if_no_peer_cert, - Enum['verify_none','verify_peer'] $ssl_management_verify = $rabbitmq::params::ssl_management_verify, - Boolean $ssl_management_fail_if_no_peer_cert = $rabbitmq::params::ssl_management_fail_if_no_peer_cert, + Integer[1, 65535] $ssl_management_port = 15671, + Integer[1, 65535] $ssl_stomp_port = 6164, + Enum['verify_none','verify_peer'] $ssl_verify = 'verify_none', + Boolean $ssl_fail_if_no_peer_cert = false, + Enum['verify_none','verify_peer'] $ssl_management_verify = 'verify_none', + Boolean $ssl_management_fail_if_no_peer_cert = false, Optional[Array] $ssl_versions = undef, - Boolean $ssl_secure_renegotiate = $rabbitmq::params::ssl_secure_renegotiate, - Boolean $ssl_reuse_sessions = $rabbitmq::params::ssl_reuse_sessions, - Boolean $ssl_honor_cipher_order = $rabbitmq::params::ssl_honor_cipher_order, + Boolean $ssl_secure_renegotiate = true, + Boolean $ssl_reuse_sessions = true, + Boolean $ssl_honor_cipher_order = true, Optional[Stdlib::Absolutepath] $ssl_dhfile = undef, - Array $ssl_ciphers = $rabbitmq::params::ssl_ciphers, - Boolean $stomp_ensure = $rabbitmq::params::stomp_ensure, - Boolean $ldap_auth = $rabbitmq::params::ldap_auth, - String $ldap_server = $rabbitmq::params::ldap_server, - Optional[String] $ldap_user_dn_pattern = $rabbitmq::params::ldap_user_dn_pattern, - String $ldap_other_bind = $rabbitmq::params::ldap_other_bind, - Boolean $ldap_use_ssl = $rabbitmq::params::ldap_use_ssl, - Integer[1, 65535] $ldap_port = $rabbitmq::params::ldap_port, - Boolean $ldap_log = $rabbitmq::params::ldap_log, - Hash $ldap_config_variables = $rabbitmq::params::ldap_config_variables, - Integer[1, 65535] $stomp_port = $rabbitmq::params::stomp_port, - Boolean $stomp_ssl_only = $rabbitmq::params::stomp_ssl_only, - Boolean $wipe_db_on_cookie_change = $rabbitmq::params::wipe_db_on_cookie_change, - String $cluster_partition_handling = $rabbitmq::params::cluster_partition_handling, - Variant[Integer[-1],Enum['unlimited'],Pattern[/^(infinity|\d+(:(infinity|\d+))?)$/]] $file_limit = $rabbitmq::params::file_limit, - Hash $environment_variables = $rabbitmq::params::environment_variables, - Hash $config_variables = $rabbitmq::params::config_variables, - Hash $config_kernel_variables = $rabbitmq::params::config_kernel_variables, - Hash $config_management_variables = $rabbitmq::params::config_management_variables, - Hash $config_additional_variables = $rabbitmq::params::config_additional_variables, + Array $ssl_ciphers = [], + Boolean $stomp_ensure = false, + Boolean $ldap_auth = false, + String $ldap_server = 'ldap', + Optional[String] $ldap_user_dn_pattern = undef, + String $ldap_other_bind = 'anon', + Boolean $ldap_use_ssl = false, + Integer[1, 65535] $ldap_port = 389, + Boolean $ldap_log = false, + Hash $ldap_config_variables = {}, + Integer[1, 65535] $stomp_port = 6163, + Boolean $stomp_ssl_only = false, + Boolean $wipe_db_on_cookie_change = false, + String $cluster_partition_handling = 'ignore', + Variant[Integer[-1],Enum['unlimited'],Pattern[/^(infinity|\d+(:(infinity|\d+))?)$/]] $file_limit = 16384, + Hash $environment_variables = { 'LC_ALL' => 'en_US.UTF-8' }, + Hash $config_variables = {}, + Hash $config_kernel_variables = {}, + Hash $config_management_variables = {}, + Hash $config_additional_variables = {}, Optional[Array] $auth_backends = undef, Optional[String] $key_content = undef, Optional[Integer] $collect_statistics_interval = undef, - Boolean $ipv6 = $rabbitmq::params::ipv6, - String $inetrc_config = $rabbitmq::params::inetrc_config, - Stdlib::Absolutepath $inetrc_config_path = $rabbitmq::params::inetrc_config_path, - Boolean $ssl_erl_dist = $rabbitmq::params::ssl_erl_dist, - Optional[String] $rabbitmqadmin_package = $rabbitmq::params::rabbitmqadmin_package, - Array $archive_options = $rabbitmq::params::archive_options, - Array $loopback_users = $rabbitmq::params::loopback_users, - Boolean $service_restart = $rabbitmq::params::service_restart, -) inherits rabbitmq::params { + Boolean $ipv6 = false, + String $inetrc_config = 'rabbitmq/inetrc.erb', + Stdlib::Absolutepath $inetrc_config_path = '/etc/rabbitmq/inetrc', + Boolean $ssl_erl_dist = false, + Optional[String] $rabbitmqadmin_package = undef, + Array $archive_options = [], + Array $loopback_users = ['guest'], + Boolean $service_restart = true, +) { if $ssl_only and ! $ssl { fail('$ssl_only => true requires that $ssl => true') diff --git a/manifests/install/rabbitmqadmin.pp b/manifests/install/rabbitmqadmin.pp index acd6728d9..d923a6fb9 100644 --- a/manifests/install/rabbitmqadmin.pp +++ b/manifests/install/rabbitmqadmin.pp @@ -10,7 +10,7 @@ } } else { - $python_package = $rabbitmq::params::python_package + $python_package = $rabbitmq::python_package # Some systems (e.g., Ubuntu 16.04) don't ship Python 2 by default if $rabbitmq::manage_python { ensure_packages([$python_package]) diff --git a/manifests/params.pp b/manifests/params.pp deleted file mode 100644 index 3ef5b81c5..000000000 --- a/manifests/params.pp +++ /dev/null @@ -1,166 +0,0 @@ -# @summary OS Specific parameters and other settings -# -# @api private -class rabbitmq::params { - - case $facts['os']['family'] { - 'Archlinux': { - $manage_python = true - $python_package = 'python2' - $package_ensure = 'installed' - $package_name = 'rabbitmq' - $service_name = 'rabbitmq' - $rabbitmq_user = 'rabbitmq' - $rabbitmq_group = 'rabbitmq' - $rabbitmq_home = '/var/lib/rabbitmq' - $package_gpg_key = undef - $rabbitmqadmin_package = 'rabbitmqadmin' - $config_path = '/etc/rabbitmq/rabbitmq.config' - $env_config_path = '/etc/rabbitmq/rabbitmq-env.conf' - $inetrc_config_path = '/etc/rabbitmq/inetrc' - } - 'Debian': { - $manage_python = true - $python_package = 'python' - $package_ensure = 'installed' - $package_name = 'rabbitmq-server' - $service_name = 'rabbitmq-server' - $rabbitmq_user = 'rabbitmq' - $rabbitmq_group = 'rabbitmq' - $rabbitmq_home = '/var/lib/rabbitmq' - $package_gpg_key = 'https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey' - $rabbitmqadmin_package = undef - $config_path = '/etc/rabbitmq/rabbitmq.config' - $env_config_path = '/etc/rabbitmq/rabbitmq-env.conf' - $inetrc_config_path = '/etc/rabbitmq/inetrc' - } - 'OpenBSD': { - $manage_python = true - $python_package = 'python2' - $package_ensure = 'installed' - $package_name = 'rabbitmq' - $service_name = 'rabbitmq' - $rabbitmq_user = '_rabbitmq' - $rabbitmq_group = '_rabbitmq' - $rabbitmq_home = '/var/rabbitmq' - $package_gpg_key = undef - $rabbitmqadmin_package = undef - $config_path = '/etc/rabbitmq/rabbitmq.config' - $env_config_path = '/etc/rabbitmq/rabbitmq-env.conf' - $inetrc_config_path = '/etc/rabbitmq/inetrc' - } - 'FreeBSD': { - $manage_python = true - $python_package = 'python2' - $package_ensure = 'installed' - $package_name = 'rabbitmq' - $service_name = 'rabbitmq' - $rabbitmq_user = 'rabbitmq' - $rabbitmq_group = 'rabbitmq' - $rabbitmq_home = '/var/db/rabbitmq' - $package_gpg_key = undef - $rabbitmqadmin_package = undef - $config_path = '/usr/local/etc/rabbitmq/rabbitmq.config' - $env_config_path = '/usr/local/etc/rabbitmq/rabbitmq-env.conf' - $inetrc_config_path = '/usr/local/etc/rabbitmq/inetrc' - } - 'RedHat': { - $manage_python = true - $python_package = 'python' - $package_ensure = 'installed' - $package_name = 'rabbitmq-server' - $service_name = 'rabbitmq-server' - $rabbitmq_user = 'rabbitmq' - $rabbitmq_group = 'rabbitmq' - $rabbitmq_home = '/var/lib/rabbitmq' - $package_gpg_key = 'https://www.rabbitmq.com/rabbitmq-release-signing-key.asc' - $rabbitmqadmin_package = undef - $config_path = '/etc/rabbitmq/rabbitmq.config' - $env_config_path = '/etc/rabbitmq/rabbitmq-env.conf' - $inetrc_config_path = '/etc/rabbitmq/inetrc' - } - 'SUSE': { - $manage_python = true - $python_package = 'python' - $package_ensure = 'installed' - $package_name = ['rabbitmq-server', 'rabbitmq-server-plugins'] - $service_name = 'rabbitmq-server' - $rabbitmq_user = 'rabbitmq' - $rabbitmq_group = 'rabbitmq' - $rabbitmq_home = '/var/lib/rabbitmq' - $package_gpg_key = undef - $rabbitmqadmin_package = undef - $config_path = '/etc/rabbitmq/rabbitmq.config' - $env_config_path = '/etc/rabbitmq/rabbitmq-env.conf' - $inetrc_config_path = '/etc/rabbitmq/inetrc' - } - default: { - fail("The ${module_name} module is not supported on an ${facts['os']['family']} based system.") - } - } - - #install - $admin_enable = true - $management_enable = false - $use_config_file_for_plugins = false - $management_port = 15672 - $management_ssl = true - $repos_ensure = false - $service_ensure = 'running' - $service_manage = true - #config - $cluster_node_type = 'disc' - $cluster_nodes = [] - $config = 'rabbitmq/rabbitmq.config.erb' - $config_cluster = false - $config_ranch = true - $config_stomp = false - $config_shovel = false - $config_shovel_statics = {} - $default_user = 'guest' - $default_pass = 'guest' - $delete_guest_user = false - $env_config = 'rabbitmq/rabbitmq-env.conf.erb' - $port = 5672 - $tcp_keepalive = false - $tcp_backlog = 128 - $ssl = false - $ssl_ciphers = [] - $ssl_erl_dist = false - $ssl_fail_if_no_peer_cert = false - $ssl_honor_cipher_order = true - $ssl_management_port = 15671 - $ssl_only = false - $ssl_port = 5671 - $ssl_reuse_sessions = true - $ssl_secure_renegotiate = true - $ssl_stomp_port = 6164 - $ssl_verify = 'verify_none' - $ssl_versions = undef - $ssl_management_verify = 'verify_none' - $ssl_management_fail_if_no_peer_cert = false - $stomp_ensure = false - $stomp_port = 6163 - $stomp_ssl_only = false - $ldap_auth = false - $ldap_server = 'ldap' - $ldap_user_dn_pattern = undef - $ldap_other_bind = 'anon' - $ldap_use_ssl = false - $ldap_port = 389 - $ldap_log = false - $ldap_config_variables = {} - $wipe_db_on_cookie_change = false - $cluster_partition_handling = 'ignore' - $environment_variables = { 'LC_ALL' => 'en_US.UTF-8' } - $config_variables = {} - $config_kernel_variables = {} - $config_management_variables = {} - $config_additional_variables = {} - $file_limit = 16384 - $ipv6 = false - $inetrc_config = 'rabbitmq/inetrc.erb' - $archive_options = [] - $loopback_users = ['guest'] - $service_restart = true -} diff --git a/manifests/server.pp b/manifests/server.pp index 4cb33b5c5..518622595 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -39,23 +39,23 @@ # true as a sign that you realise this. # class rabbitmq::server( - Integer $port = $rabbitmq::params::port, - Boolean $delete_guest_user = $rabbitmq::params::delete_guest_user, - Variant[String, Array] $package_name = $rabbitmq::params::package_name, - String $service_name = $rabbitmq::params::service_name, - Enum['running', 'stopped'] $service_ensure = $rabbitmq::params::service_ensure, - Boolean $service_manage = $rabbitmq::params::service_manage, - Boolean $config_stomp = $rabbitmq::params::config_stomp, - Integer[1, 65535] $stomp_port = $rabbitmq::params::stomp_port, - Boolean $config_cluster = $rabbitmq::params::config_cluster, - Array $cluster_nodes = $rabbitmq::params::cluster_nodes, - Enum['ram', 'disk', 'disc'] $cluster_node_type = $rabbitmq::params::cluster_node_type, - Optional[String] $node_ip_address = $rabbitmq::params::node_ip_address, - String $config = $rabbitmq::params::config, - String $env_config = $rabbitmq::params::env_config, - Optional[String] $erlang_cookie = $rabbitmq::params::erlang_cookie, - Boolean $wipe_db_on_cookie_change = $rabbitmq::params::wipe_db_on_cookie_change, -) inherits rabbitmq::params { + Integer $port = $rabbitmq::port, + Boolean $delete_guest_user = $rabbitmq::delete_guest_user, + Variant[String, Array] $package_name = $rabbitmq::package_name, + String $service_name = $rabbitmq::service_name, + Enum['running', 'stopped'] $service_ensure = $rabbitmq::service_ensure, + Boolean $service_manage = $rabbitmq::service_manage, + Boolean $config_stomp = $rabbitmq::config_stomp, + Integer[1, 65535] $stomp_port = $rabbitmq::stomp_port, + Boolean $config_cluster = $rabbitmq::config_cluster, + Array $cluster_nodes = $rabbitmq::cluster_nodes, + Enum['ram', 'disk', 'disc'] $cluster_node_type = $rabbitmq::cluster_node_type, + Optional[String] $node_ip_address = $rabbitmq::node_ip_address, + String $config = $rabbitmq::config, + String $env_config = $rabbitmq::env_config, + Optional[String] $erlang_cookie = $rabbitmq::erlang_cookie, + Boolean $wipe_db_on_cookie_change = $rabbitmq::wipe_db_on_cookie_change, +) { class { 'rabbitmq': port => $port, diff --git a/spec/classes/rabbitmq_spec.rb b/spec/classes/rabbitmq_spec.rb index ea27b4fa0..a8dfa6650 100644 --- a/spec/classes/rabbitmq_spec.rb +++ b/spec/classes/rabbitmq_spec.rb @@ -1,18 +1,6 @@ require 'spec_helper' describe 'rabbitmq' do - context 'on unsupported distributions' do - let(:facts) do - { - os: { family: 'Unsupported' } - } - end - - it 'we fail' do - expect { catalogue }.to raise_error(Puppet::Error, %r{not supported on an Unsupported}) - end - end - on_supported_os.each do |os, facts| context "on #{os}" do systemd_facts = os_specific_facts(facts) From 32c786502684d298776f283c199e84277e9f6fd1 Mon Sep 17 00:00:00 2001 From: Dennis Hoppe Date: Fri, 3 May 2019 13:08:44 +0200 Subject: [PATCH 2/4] Update REFERENCE.md based on new parameter layout --- REFERENCE.md | 221 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 133 insertions(+), 88 deletions(-) diff --git a/REFERENCE.md b/REFERENCE.md index 32fa4484c..37bc3ac1e 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -16,7 +16,6 @@ _Private Classes_ * `rabbitmq::install`: Ensures that rabbitmq-server exists * `rabbitmq::install::rabbitmqadmin`: Install rabbitmq admin * `rabbitmq::management`: Manage presence / absence of user resource for guest management user. -* `rabbitmq::params`: OS Specific parameters and other settings * `rabbitmq::repo::apt`: requires puppetlabs-apt puppetlabs-stdlib * `rabbitmq::repo::rhel`: Makes sure that the Packagecloud repo is installed * `rabbitmq::service`: This class manages the rabbitmq server service itself. @@ -159,8 +158,27 @@ The following parameters are available in the `rabbitmq` class. Data type: `Boolean` If enabled sets up the management interface/plugin for RabbitMQ. +This also install the rabbitmqadmin command line tool. -Default value: $rabbitmq::params::admin_enable +Default value: `true` + +##### `management_enable` + +Data type: `Boolean` + +If enabled sets up the management interface/plugin for RabbitMQ. +NOTE: This does not install the rabbitmqadmin command line tool. + +Default value: `false` + +##### `use_config_file_for_plugins` + +Data type: `Boolean` + +If enabled the /etc/rabbitmq/enabled_plugins config file is created, +replacing the use of the rabbitmqplugins provider to enable plugins. + +Default value: `false` ##### `auth_backends` @@ -178,7 +196,7 @@ Data type: `Enum['ram', 'disk', 'disc']` Choose between disc and ram nodes. -Default value: $rabbitmq::params::cluster_node_type +Default value: 'disc' ##### `cluster_nodes` @@ -186,7 +204,7 @@ Data type: `Array` An array of nodes for clustering. -Default value: $rabbitmq::params::cluster_nodes +Default value: [] ##### `cluster_partition_handling` @@ -194,7 +212,7 @@ Data type: `String` Value to set for `cluster_partition_handling` RabbitMQ configuration variable. -Default value: $rabbitmq::params::cluster_partition_handling +Default value: 'ignore' ##### `collect_statistics_interval` @@ -210,7 +228,7 @@ Data type: `String` The file to use as the rabbitmq.config template. -Default value: $rabbitmq::params::config +Default value: 'rabbitmq/rabbitmq.config.erb' ##### `config_additional_variables` @@ -218,7 +236,7 @@ Data type: `Hash` Additional config variables in rabbitmq.config -Default value: $rabbitmq::params::config_additional_variables +Default value: {} ##### `config_cluster` @@ -226,7 +244,7 @@ Data type: `Boolean` Enable or disable clustering support. -Default value: $rabbitmq::params::config_cluster +Default value: `false` ##### `config_kernel_variables` @@ -234,7 +252,7 @@ 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 +Default value: {} ##### `config_path` @@ -242,7 +260,7 @@ Data type: `Stdlib::Absolutepath` The path to write the RabbitMQ configuration file to. -Default value: $rabbitmq::params::config_path +Default value: '/etc/rabbitmq/rabbitmq.config' ##### `config_ranch` @@ -250,7 +268,7 @@ Data type: `Boolean` When true, suppress config directives needed for older (<3.6) RabbitMQ versions. -Default value: $rabbitmq::params::config_ranch +Default value: `true` ##### `config_management_variables` @@ -258,7 +276,7 @@ Data type: `Hash` Hash of configuration variables for the [Management Plugin](https://www.rabbitmq.com/management.html). -Default value: $rabbitmq::params::config_management_variables +Default value: {} ##### `config_stomp` @@ -266,7 +284,7 @@ Data type: `Boolean` Enable or disable stomp. -Default value: $rabbitmq::params::config_stomp +Default value: `false` ##### `config_shovel` @@ -274,7 +292,7 @@ Data type: `Boolean` Enable or disable shovel. -Default value: $rabbitmq::params::config_shovel +Default value: `false` ##### `config_shovel_statics` @@ -282,7 +300,7 @@ Data type: `Hash` Hash of static shovel configurations -Default value: $rabbitmq::params::config_shovel_statics +Default value: {} ##### `config_variables` @@ -290,7 +308,7 @@ Data type: `Hash` To set config variables in rabbitmq.config -Default value: $rabbitmq::params::config_variables +Default value: {} ##### `default_user` @@ -298,7 +316,7 @@ Data type: `String` Username to set for the `default_user` in rabbitmq.config. -Default value: $rabbitmq::params::default_user +Default value: 'guest' ##### `default_pass` @@ -306,7 +324,7 @@ Data type: `String` Password to set for the `default_user` in rabbitmq.config. -Default value: $rabbitmq::params::default_pass +Default value: 'guest' ##### `delete_guest_user` @@ -314,7 +332,7 @@ Data type: `Boolean` Controls whether default guest user is deleted. -Default value: $rabbitmq::params::delete_guest_user +Default value: `false` ##### `env_config` @@ -322,7 +340,7 @@ Data type: `String` The template file to use for rabbitmq_env.config. -Default value: $rabbitmq::params::env_config +Default value: 'rabbitmq/rabbitmq-env.conf.erb' ##### `env_config_path` @@ -330,7 +348,7 @@ Data type: `Stdlib::Absolutepath` The path to write the rabbitmq_env.config file to. -Default value: $rabbitmq::params::env_config_path +Default value: '/etc/rabbitmq/rabbitmq-env.conf' ##### `environment_variables` @@ -338,7 +356,7 @@ Data type: `Hash` RabbitMQ Environment Variables in rabbitmq_env.config -Default value: $rabbitmq::params::environment_variables +Default value: { 'LC_ALL' => 'en_US.UTF-8' } ##### `erlang_cookie` @@ -356,7 +374,7 @@ Data type: `Variant[Integer[-1],Enum['unlimited'],Pattern[/^(infinity|\d+(:(infi Set rabbitmq file ulimit. Defaults to 16384. Only available on systems with `$::osfamily == 'Debian'` or `$::osfamily == 'RedHat'`. -Default value: $rabbitmq::params::file_limit +Default value: 16384 ##### `heartbeat` @@ -372,7 +390,7 @@ Data type: `String` Template to use for the inetrc config -Default value: $rabbitmq::params::inetrc_config +Default value: 'rabbitmq/inetrc.erb' ##### `inetrc_config_path` @@ -380,7 +398,7 @@ Data type: `Stdlib::Absolutepath` Path of the file to push the inetrc config to. -Default value: $rabbitmq::params::inetrc_config_path +Default value: '/etc/rabbitmq/inetrc' ##### `ipv6` @@ -388,7 +406,7 @@ Data type: `Boolean` Whether to listen on ipv6 -Default value: $rabbitmq::params::ipv6 +Default value: `false` ##### `interface` @@ -414,7 +432,7 @@ Data type: `Boolean` Set to true to enable LDAP auth. -Default value: $rabbitmq::params::ldap_auth +Default value: `false` ##### `ldap_server` @@ -422,7 +440,7 @@ Data type: `String` LDAP server to use for auth. -Default value: $rabbitmq::params::ldap_server +Default value: 'ldap' ##### `ldap_user_dn_pattern` @@ -430,7 +448,7 @@ Data type: `Optional[String]` User DN pattern for LDAP auth. -Default value: $rabbitmq::params::ldap_user_dn_pattern +Default value: `undef` ##### `ldap_other_bind` @@ -438,7 +456,7 @@ Data type: `String` How to bind to the LDAP server. Defaults to 'anon'. -Default value: $rabbitmq::params::ldap_other_bind +Default value: 'anon' ##### `ldap_config_variables` @@ -446,7 +464,7 @@ Data type: `Hash` Hash of other LDAP config variables. -Default value: $rabbitmq::params::ldap_config_variables +Default value: {} ##### `ldap_use_ssl` @@ -454,7 +472,7 @@ Data type: `Boolean` Set to true to use SSL for the LDAP server. -Default value: $rabbitmq::params::ldap_use_ssl +Default value: `false` ##### `ldap_port` @@ -462,7 +480,7 @@ Data type: `Integer[1, 65535]` Numeric port for LDAP server. -Default value: $rabbitmq::params::ldap_port +Default value: 389 ##### `ldap_log` @@ -470,7 +488,7 @@ Data type: `Boolean` Set to true to log LDAP auth. -Default value: $rabbitmq::params::ldap_log +Default value: `false` ##### `manage_python` @@ -479,7 +497,7 @@ 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 +Default value: `true` ##### `management_hostname` @@ -495,7 +513,7 @@ Data type: `Integer[1, 65535]` The port for the RabbitMQ management interface. -Default value: $rabbitmq::params::management_port +Default value: 15672 ##### `management_ip_address` @@ -512,7 +530,7 @@ Data type: `Boolean` Enable/Disable SSL for the management port. Has an effect only if ssl => true. -Default value: $rabbitmq::params::management_ssl +Default value: `true` ##### `node_ip_address` @@ -537,7 +555,7 @@ 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 +Default value: 'installed' ##### `package_gpg_key` @@ -548,7 +566,7 @@ RedHat OS family. Set to https://www.rabbitmq.com/rabbitmq-release-signing-key.a https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey for Debian OS Family by default. Note, that `key_content`, if specified, would override this parameter for Debian OS family. -Default value: $rabbitmq::params::package_gpg_key +Default value: `undef` ##### `package_name` @@ -556,7 +574,7 @@ Data type: `Variant[String, Array]` Name(s) of the package(s) to install -Default value: $rabbitmq::params::package_name +Default value: 'rabbitmq' ##### `port` @@ -564,7 +582,15 @@ Data type: `Integer` The RabbitMQ port. -Default value: $rabbitmq::params::port +Default value: 5672 + +##### `python_package` + +Data type: `String` + +Name of the package required by rabbitmqadmin. + +Default value: 'python' ##### `repos_ensure` @@ -572,8 +598,10 @@ 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. +It also does not solve the erlang dependency. See https://www.rabbitmq.com/which-erlang.html for a good breakdown of the +different ways of handling the erlang deps. See also https://github.com/voxpupuli/puppet-rabbitmq/issues/788 -Default value: $rabbitmq::params::repos_ensure +Default value: `false` ##### `service_ensure` @@ -581,7 +609,7 @@ Data type: `Enum['running', 'stopped']` The state of the service. -Default value: $rabbitmq::params::service_ensure +Default value: 'running' ##### `service_manage` @@ -589,7 +617,7 @@ Data type: `Boolean` Determines if the service is managed. -Default value: $rabbitmq::params::service_manage +Default value: `true` ##### `service_name` @@ -597,7 +625,7 @@ Data type: `String` The name of the service to manage. -Default value: $rabbitmq::params::service_name +Default value: 'rabbitmq' ##### `service_restart` @@ -605,7 +633,7 @@ Data type: `Boolean` Default defined in param.pp. Whether to restart the service on config change. -Default value: $rabbitmq::params::service_restart +Default value: `true` ##### `ssl` @@ -613,7 +641,7 @@ Data type: `Boolean` Configures the service for using SSL. -Default value: $rabbitmq::params::ssl +Default value: `false` ##### `ssl_cacert` @@ -661,7 +689,7 @@ 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 +Default value: `false` ##### `ssl_honor_cipher_order` @@ -669,7 +697,7 @@ Data type: `Boolean` Force use of server cipher order -Default value: $rabbitmq::params::ssl_honor_cipher_order +Default value: `true` ##### `ssl_interface` @@ -694,7 +722,7 @@ Data type: `Boolean` Configures the service to only use SSL. No cleartext TCP listeners will be created. Requires that ssl => true and port => undef -Default value: $rabbitmq::params::ssl_only +Default value: `false` ##### `ssl_management_port` @@ -702,7 +730,7 @@ Data type: `Integer[1, 65535]` SSL management port. -Default value: $rabbitmq::params::ssl_management_port +Default value: 15671 ##### `ssl_port` @@ -710,7 +738,7 @@ Data type: `Integer[1, 65535]` SSL port for RabbitMQ -Default value: $rabbitmq::params::ssl_port +Default value: 5671 ##### `ssl_reuse_sessions` @@ -718,7 +746,7 @@ Data type: `Boolean` Reuse ssl sessions -Default value: $rabbitmq::params::ssl_reuse_sessions +Default value: `true` ##### `ssl_secure_renegotiate` @@ -726,7 +754,7 @@ Data type: `Boolean` Use ssl secure renegotiate -Default value: $rabbitmq::params::ssl_secure_renegotiate +Default value: `true` ##### `ssl_stomp_port` @@ -734,7 +762,7 @@ Data type: `Integer[1, 65535]` SSL stomp port. -Default value: $rabbitmq::params::ssl_stomp_port +Default value: 6164 ##### `ssl_verify` @@ -742,7 +770,7 @@ Data type: `Enum['verify_none','verify_peer']` rabbitmq.config SSL verify setting. -Default value: $rabbitmq::params::ssl_verify +Default value: 'verify_none' ##### `ssl_fail_if_no_peer_cert` @@ -750,7 +778,7 @@ Data type: `Boolean` rabbitmq.config `fail_if_no_peer_cert` setting. -Default value: $rabbitmq::params::ssl_fail_if_no_peer_cert +Default value: `false` ##### `ssl_management_verify` @@ -758,7 +786,7 @@ Data type: `Enum['verify_none','verify_peer']` rabbitmq.config SSL verify setting for rabbitmq_management. -Default value: $rabbitmq::params::ssl_management_verify +Default value: 'verify_none' ##### `ssl_versions` @@ -778,7 +806,7 @@ 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 +Default value: [] ##### `stomp_port` @@ -786,7 +814,7 @@ Data type: `Integer[1, 65535]` The port to use for Stomp. -Default value: $rabbitmq::params::stomp_port +Default value: 6163 ##### `stomp_ssl_only` @@ -794,7 +822,7 @@ 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 +Default value: `false` ##### `stomp_ensure` @@ -802,7 +830,7 @@ Data type: `Boolean` Enable to install the stomp plugin. -Default value: $rabbitmq::params::stomp_ensure +Default value: `false` ##### `tcp_backlog` @@ -810,7 +838,7 @@ Data type: `Integer` The size of the backlog on TCP connections. -Default value: $rabbitmq::params::tcp_backlog +Default value: 128 ##### `tcp_keepalive` @@ -818,7 +846,7 @@ Data type: `Boolean` Enable TCP connection keepalive for RabbitMQ service. -Default value: $rabbitmq::params::tcp_keepalive +Default value: `false` ##### `tcp_recbuf` @@ -842,7 +870,7 @@ Data type: `Boolean` Boolean to determine if we should DESTROY AND DELETE the RabbitMQ database. -Default value: $rabbitmq::params::wipe_db_on_cookie_change +Default value: `false` ##### `rabbitmq_user` @@ -850,7 +878,7 @@ Data type: `String` OS dependent The system user the rabbitmq daemon runs as. -Default value: $rabbitmq::params::rabbitmq_user +Default value: 'rabbitmq' ##### `rabbitmq_group` @@ -858,7 +886,7 @@ Data type: `String` OS dependent The system group the rabbitmq daemon runs as. -Default value: $rabbitmq::params::rabbitmq_group +Default value: 'rabbitmq' ##### `rabbitmq_home` @@ -866,7 +894,7 @@ Data type: `Stdlib::Absolutepath` OS dependent The home directory of the rabbitmq deamon. -Default value: $rabbitmq::params::rabbitmq_home +Default value: '/var/lib/rabbitmq' ##### `rabbitmqadmin_package` @@ -874,7 +902,7 @@ Data type: `Optional[String]` OS dependent If undef: install rabbitmqadmin via archive, otherwise via package -Default value: $rabbitmq::params::rabbitmqadmin_package +Default value: `undef` ##### `archive_options` @@ -882,7 +910,7 @@ Data type: `Array` Extra options to Archive resource to download rabbitmqadmin file -Default value: $rabbitmq::params::archive_options +Default value: [] ##### `loopback_users` @@ -890,7 +918,7 @@ Data type: `Array` This option configures a list of users to allow access via the loopback interfaces -Default value: $rabbitmq::params::loopback_users +Default value: ['guest'] ##### `package_source` @@ -914,7 +942,7 @@ Data type: `Boolean` -Default value: $rabbitmq::params::ssl_management_fail_if_no_peer_cert +Default value: `false` ### rabbitmq::server @@ -931,7 +959,7 @@ Data type: `Integer` Port that rabbitmq server should listen to -Default value: $rabbitmq::params::port +Default value: $rabbitmq::port ##### `delete_guest_user` @@ -939,7 +967,7 @@ Data type: `Boolean` Whether or not to delete the default user -Default value: $rabbitmq::params::delete_guest_user +Default value: $rabbitmq::delete_guest_user ##### `package_name` @@ -947,7 +975,7 @@ Data type: `Variant[String, Array]` Name of rabbitmq package -Default value: $rabbitmq::params::package_name +Default value: $rabbitmq::package_name ##### `service_name` @@ -955,7 +983,7 @@ Data type: `String` Name of rabbitmq service -Default value: $rabbitmq::params::service_name +Default value: $rabbitmq::service_name ##### `service_ensure` @@ -963,7 +991,7 @@ Data type: `Enum['running', 'stopped']` Desired ensure state for service -Default value: $rabbitmq::params::service_ensure +Default value: $rabbitmq::service_ensure ##### `service_manage` @@ -971,7 +999,7 @@ Data type: `Boolean` Determines if the service is managed -Default value: $rabbitmq::params::service_manage +Default value: $rabbitmq::service_manage ##### `config_stomp` @@ -979,7 +1007,7 @@ Data type: `Boolean` Enable or disable stomp -Default value: $rabbitmq::params::config_stomp +Default value: $rabbitmq::config_stomp ##### `stomp_port` @@ -987,7 +1015,7 @@ Data type: `Integer[1, 65535]` Port stomp should be listening on -Default value: $rabbitmq::params::stomp_port +Default value: $rabbitmq::stomp_port ##### `node_ip_address` @@ -995,7 +1023,7 @@ Data type: `Optional[String]` IP address for rabbitmq to bind to -Default value: $rabbitmq::params::node_ip_address +Default value: $rabbitmq::node_ip_address ##### `config` @@ -1003,7 +1031,7 @@ Data type: `String` Contents of config file -Default value: $rabbitmq::params::config +Default value: $rabbitmq::config ##### `env_config` @@ -1011,7 +1039,7 @@ Data type: `String` Contents of env-config file -Default value: $rabbitmq::params::env_config +Default value: $rabbitmq::env_config ##### `config_cluster` @@ -1019,7 +1047,7 @@ Data type: `Boolean` Whether to configure a RabbitMQ cluster -Default value: $rabbitmq::params::config_cluster +Default value: $rabbitmq::config_cluster ##### `cluster_nodes` @@ -1027,7 +1055,7 @@ Data type: `Array` Which nodes to cluster with (including the current one) -Default value: $rabbitmq::params::cluster_nodes +Default value: $rabbitmq::cluster_nodes ##### `cluster_node_type` @@ -1035,7 +1063,7 @@ Data type: `Enum['ram', 'disk', 'disc']` Type of cluster node (disc/disk or ram) -Default value: $rabbitmq::params::cluster_node_type +Default value: $rabbitmq::cluster_node_type ##### `erlang_cookie` @@ -1043,7 +1071,7 @@ Data type: `Optional[String]` Erlang cookie, must be the same for all nodes in a cluster -Default value: $rabbitmq::params::erlang_cookie +Default value: $rabbitmq::erlang_cookie ##### `wipe_db_on_cookie_change` @@ -1053,7 +1081,7 @@ Whether to wipe the RabbitMQ data if the specified erlang_cookie differs from th 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. -Default value: $rabbitmq::params::wipe_db_on_cookie_change +Default value: $rabbitmq::wipe_db_on_cookie_change ## Resource types @@ -1428,6 +1456,15 @@ rabbitmq_plugin {'rabbitmq_stomp': } ``` +##### Ensure a rabbitmq_plugin offline resource (with RabbitMQ version >=3.4.0) + +```puppet +rabbitmq_plugin {'rabbitmq_stomp': + ensure => present, + mode => 'offline', +} +``` + #### Properties The following properties are available in the `rabbitmq_plugin` type. @@ -1452,6 +1489,14 @@ namevar The name of the plugin to enable +##### `mode` + +Valid values: online, offline, best + +Define how the plugin should be enabled regarding node status. + +Default value: best + ##### `umask` Sets the octal umask to be used while creating this resource From 363d48d3379a667b4df6ae8bcc861f099f5bce76 Mon Sep 17 00:00:00 2001 From: Dennis Hoppe Date: Sat, 4 May 2019 20:53:29 +0200 Subject: [PATCH 3/4] Remove deprecated file server.pp --- REFERENCE.md | 140 --------------------------------- manifests/server.pp | 79 ------------------- spec/acceptance/server_spec.rb | 95 ---------------------- 3 files changed, 314 deletions(-) delete mode 100644 manifests/server.pp delete mode 100644 spec/acceptance/server_spec.rb diff --git a/REFERENCE.md b/REFERENCE.md index 37bc3ac1e..7a3366605 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -8,7 +8,6 @@ _Public Classes_ * [`rabbitmq`](#rabbitmq): A module to manage RabbitMQ -* [`rabbitmq::server`](#rabbitmqserver): Backwards compatibility layer to support including `rabbitmq::server` directly. _Private Classes_ @@ -944,145 +943,6 @@ Data type: `Boolean` Default value: `false` -### rabbitmq::server - -This module manages the installation and config of the rabbitmq server. It is used as backward compability layer for modules which - require rabbitmq::server instead of rabbitmq class. - -#### Parameters - -The following parameters are available in the `rabbitmq::server` class. - -##### `port` - -Data type: `Integer` - -Port that rabbitmq server should listen to - -Default value: $rabbitmq::port - -##### `delete_guest_user` - -Data type: `Boolean` - -Whether or not to delete the default user - -Default value: $rabbitmq::delete_guest_user - -##### `package_name` - -Data type: `Variant[String, Array]` - -Name of rabbitmq package - -Default value: $rabbitmq::package_name - -##### `service_name` - -Data type: `String` - -Name of rabbitmq service - -Default value: $rabbitmq::service_name - -##### `service_ensure` - -Data type: `Enum['running', 'stopped']` - -Desired ensure state for service - -Default value: $rabbitmq::service_ensure - -##### `service_manage` - -Data type: `Boolean` - -Determines if the service is managed - -Default value: $rabbitmq::service_manage - -##### `config_stomp` - -Data type: `Boolean` - -Enable or disable stomp - -Default value: $rabbitmq::config_stomp - -##### `stomp_port` - -Data type: `Integer[1, 65535]` - -Port stomp should be listening on - -Default value: $rabbitmq::stomp_port - -##### `node_ip_address` - -Data type: `Optional[String]` - -IP address for rabbitmq to bind to - -Default value: $rabbitmq::node_ip_address - -##### `config` - -Data type: `String` - -Contents of config file - -Default value: $rabbitmq::config - -##### `env_config` - -Data type: `String` - -Contents of env-config file - -Default value: $rabbitmq::env_config - -##### `config_cluster` - -Data type: `Boolean` - -Whether to configure a RabbitMQ cluster - -Default value: $rabbitmq::config_cluster - -##### `cluster_nodes` - -Data type: `Array` - -Which nodes to cluster with (including the current one) - -Default value: $rabbitmq::cluster_nodes - -##### `cluster_node_type` - -Data type: `Enum['ram', 'disk', 'disc']` - -Type of cluster node (disc/disk or ram) - -Default value: $rabbitmq::cluster_node_type - -##### `erlang_cookie` - -Data type: `Optional[String]` - -Erlang cookie, must be the same for all nodes in a cluster - -Default value: $rabbitmq::erlang_cookie - -##### `wipe_db_on_cookie_change` - -Data type: `Boolean` - -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. - -Default value: $rabbitmq::wipe_db_on_cookie_change - ## Resource types ### rabbitmq_binding diff --git a/manifests/server.pp b/manifests/server.pp deleted file mode 100644 index 518622595..000000000 --- a/manifests/server.pp +++ /dev/null @@ -1,79 +0,0 @@ -# @summary Backwards compatibility layer to support including `rabbitmq::server` directly. -# -# This module manages the installation and config of the rabbitmq server. It is used as backward compability layer for modules which -# require rabbitmq::server instead of rabbitmq class. -# -# @param port -# Port that rabbitmq server should listen to -# @param delete_guest_user -# Whether or not to delete the default user -# @param package_name -# Name of rabbitmq package -# @param service_name -# Name of rabbitmq service -# @param service_ensure -# Desired ensure state for service -# @param service_manage -# Determines if the service is managed -# @param config_stomp -# Enable or disable stomp -# @param stomp_port -# Port stomp should be listening on -# @param node_ip_address -# IP address for rabbitmq to bind to -# @param config -# Contents of config file -# @param env_config -# Contents of env-config file -# @param config_cluster -# Whether to configure a RabbitMQ cluster -# @param cluster_nodes -# Which nodes to cluster with (including the current one) -# @param cluster_node_type -# Type of cluster node (disc/disk or ram) -# @param erlang_cookie -# Erlang cookie, must be the same for all nodes in a cluster -# @param 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. -# -class rabbitmq::server( - Integer $port = $rabbitmq::port, - Boolean $delete_guest_user = $rabbitmq::delete_guest_user, - Variant[String, Array] $package_name = $rabbitmq::package_name, - String $service_name = $rabbitmq::service_name, - Enum['running', 'stopped'] $service_ensure = $rabbitmq::service_ensure, - Boolean $service_manage = $rabbitmq::service_manage, - Boolean $config_stomp = $rabbitmq::config_stomp, - Integer[1, 65535] $stomp_port = $rabbitmq::stomp_port, - Boolean $config_cluster = $rabbitmq::config_cluster, - Array $cluster_nodes = $rabbitmq::cluster_nodes, - Enum['ram', 'disk', 'disc'] $cluster_node_type = $rabbitmq::cluster_node_type, - Optional[String] $node_ip_address = $rabbitmq::node_ip_address, - String $config = $rabbitmq::config, - String $env_config = $rabbitmq::env_config, - Optional[String] $erlang_cookie = $rabbitmq::erlang_cookie, - Boolean $wipe_db_on_cookie_change = $rabbitmq::wipe_db_on_cookie_change, -) { - - class { 'rabbitmq': - port => $port, - delete_guest_user => $delete_guest_user, - package_name => $package_name, - service_name => $service_name, - service_ensure => $service_ensure, - service_manage => $service_manage, - config_stomp => $config_stomp, - stomp_port => $stomp_port, - config_cluster => $config_cluster, - cluster_nodes => $cluster_nodes, - cluster_node_type => $cluster_node_type, - node_ip_address => $node_ip_address, - config => $config, - env_config => $env_config, - erlang_cookie => $erlang_cookie, - wipe_db_on_cookie_change => $wipe_db_on_cookie_change, - } - contain rabbitmq -} diff --git a/spec/acceptance/server_spec.rb b/spec/acceptance/server_spec.rb deleted file mode 100644 index 5ac29bfee..000000000 --- a/spec/acceptance/server_spec.rb +++ /dev/null @@ -1,95 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'rabbitmq server:' do - case fact('os.family') - when 'RedHat' - package_name = 'rabbitmq-server' - service_name = 'rabbitmq-server' - when 'SUSE' - package_name = 'rabbitmq-server' - service_name = 'rabbitmq-server' - when 'Debian' - package_name = 'rabbitmq-server' - service_name = 'rabbitmq-server' - when 'Archlinux' - package_name = 'rabbitmq' - service_name = 'rabbitmq' - end - - context 'default class inclusion' do - it 'runs successfully' do - pp = <<-EOS - class { 'rabbitmq::server': } - if $facts['os']['family'] == 'RedHat' { - class { 'erlang': epel_enable => true} - Class['erlang'] -> Class['rabbitmq::server'] - } - EOS - - # Apply twice to ensure no errors the second time. - apply_manifest(pp, catch_failures: true) - expect(apply_manifest(pp, catch_changes: true).exit_code).to be_zero - end - - describe package(package_name) do - it { is_expected.to be_installed } - end - - describe service(service_name) do - it { is_expected.to be_enabled } - it { is_expected.to be_running } - end - end - - context 'disable and stop service' do - it 'runs successfully' do - pp = <<-EOS - class { 'rabbitmq::server': - service_ensure => 'stopped', - } - if $facts['os']['family'] == 'RedHat' { - class { 'erlang': epel_enable => true} - Class['erlang'] -> Class['rabbitmq::server'] - } - EOS - - apply_manifest(pp, catch_failures: true) - end - - describe service(service_name) do - it { is_expected.not_to be_enabled } - it { is_expected.not_to be_running } - end - end - - context 'service is unmanaged' do - it 'runs successfully' do - pp_pre = <<-EOS - class { 'rabbitmq::server': } - if $facts['os']['family'] == 'RedHat' { - class { 'erlang': epel_enable => true} - Class['erlang'] -> Class['rabbitmq::server'] - } - EOS - - pp = <<-EOS - class { 'rabbitmq::server': - service_manage => false, - service_ensure => 'stopped', - } - if $facts['os']['family'] == 'RedHat' { - class { 'erlang': epel_enable => true} - Class['erlang'] -> Class['rabbitmq::server'] - } - EOS - - apply_manifest(pp_pre, catch_failures: true) - apply_manifest(pp, catch_failures: true) - end - - describe service(service_name) do - it { is_expected.to be_enabled } - it { is_expected.to be_running } - end - end -end From 5f096c047df99d22fce991699fe5626f09459e9b Mon Sep 17 00:00:00 2001 From: Dennis Hoppe Date: Sat, 4 May 2019 20:54:27 +0200 Subject: [PATCH 4/4] Update examples because classes are dropped or private --- examples/full.pp | 9 +++------ examples/plugin.pp | 10 +++++----- examples/server.pp | 5 ----- examples/service.pp | 1 - examples/site.pp | 4 ++-- 5 files changed, 10 insertions(+), 19 deletions(-) delete mode 100644 examples/server.pp delete mode 100644 examples/service.pp diff --git a/examples/full.pp b/examples/full.pp index 2862ac8d2..9e28ed7ca 100644 --- a/examples/full.pp +++ b/examples/full.pp @@ -1,10 +1,7 @@ -class { 'rabbitmq::repo::apt': - pin => '900', -} - --> class { 'rabbitmq::server': +class { 'rabbitmq': delete_guest_user => true, -# version => '2.4.1', + repos_ensure => true, + package_apt_pin => 900, } -> rabbitmq_user { 'dan': diff --git a/examples/plugin.pp b/examples/plugin.pp index 6c5605b9e..01b8fbdc4 100644 --- a/examples/plugin.pp +++ b/examples/plugin.pp @@ -1,11 +1,11 @@ -class { 'rabbitmq::server': - config_stomp => true, -} - $rabbitmq_plugins = [ 'amqp_client', 'rabbitmq_stomp' ] +class { 'rabbitmq': + config_stomp => true, +} + rabbitmq_plugin { $rabbitmq_plugins: ensure => present, - require => Class['rabbitmq::server'], + require => Class['rabbitmq'], provider => 'rabbitmqplugins', } diff --git a/examples/server.pp b/examples/server.pp deleted file mode 100644 index caea89377..000000000 --- a/examples/server.pp +++ /dev/null @@ -1,5 +0,0 @@ -class { 'rabbitmq::server': - port => '5672', - delete_guest_user => true, - version => 'latest', -} diff --git a/examples/service.pp b/examples/service.pp deleted file mode 100644 index 9a00d2b6d..000000000 --- a/examples/service.pp +++ /dev/null @@ -1 +0,0 @@ -class { 'rabbitmq::service': } diff --git a/examples/site.pp b/examples/site.pp index 75ebcfed3..a3b19d433 100644 --- a/examples/site.pp +++ b/examples/site.pp @@ -2,14 +2,14 @@ $rabbitmq_plugins = [ 'amqp_client', 'rabbitmq_stomp' ] - class { 'rabbitmq::server': + class { 'rabbitmq': config => '[ {rabbit_stomp, [{tcp_listeners, [1234]} ]} ].', } # Required for MCollective rabbitmq_plugin { $rabbitmq_plugins: ensure => present, - require => Class['rabbitmq::server'], + require => Class['rabbitmq'], provider => 'rabbitmqplugins', } }