Skip to content

Commit

Permalink
Merge pull request voxpupuli#559 from wyardley/unset_to_undef
Browse files Browse the repository at this point in the history
Switch from 'UNSET' to undefs, rename management_ip to management_ip_address
  • Loading branch information
hunner committed Aug 24, 2017
2 parents 3a0eef8 + 45a38ec commit 4b5c0a3
Show file tree
Hide file tree
Showing 9 changed files with 231 additions and 136 deletions.
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,11 @@ Boolean, set to true to log LDAP auth.

Boolean, whether or not to manage package repositories.

####`management_ip_address`

Will fall back to `node_ip_address` if not explicitly set; allows configuring
a separate bind IP for the management interface.

####`management_hostname`

The hostname for the RabbitMQ management interface.
Expand All @@ -351,7 +356,8 @@ Valid values are true or false.
####`node_ip_address`

The value of NODE_IP_ADDRESS in rabbitmq_env.config and of the
rabbitmq_management server if it is enabled.
rabbitmq_management server if it is enabled. See also `management_ip_address`.
Use 0.0.0.0 to bind to all interfaces.

####`package_ensure`

Expand Down Expand Up @@ -410,7 +416,7 @@ Configures the service for using SSL.
####`ssl_only`

Configures the service to only use SSL. No cleartext TCP listeners will be created.
Requires that ssl => true and port => UNSET also
Requires that ssl => true and port => undef also

####`ssl_cacert`

Expand Down
142 changes: 75 additions & 67 deletions manifests/config.pp
Original file line number Diff line number Diff line change
Expand Up @@ -3,74 +3,73 @@
# config and ssl.
class rabbitmq::config {

$admin_enable = $rabbitmq::admin_enable
$cluster_node_type = $rabbitmq::cluster_node_type
$cluster_nodes = $rabbitmq::cluster_nodes
$config = $rabbitmq::config
$config_cluster = $rabbitmq::config_cluster
$config_path = $rabbitmq::config_path
$config_stomp = $rabbitmq::config_stomp
$config_shovel = $rabbitmq::config_shovel
$config_shovel_statics = $rabbitmq::config_shovel_statics
$default_user = $rabbitmq::default_user
$default_pass = $rabbitmq::default_pass
$env_config = $rabbitmq::env_config
$env_config_path = $rabbitmq::env_config_path
$erlang_cookie = $rabbitmq::erlang_cookie
$interface = $rabbitmq::interface
$management_ip = $rabbitmq::management_ip
$management_port = $rabbitmq::management_port
$management_ssl = $rabbitmq::management_ssl
$management_hostname = $rabbitmq::management_hostname
$node_ip_address = $rabbitmq::node_ip_address
$plugin_dir = $rabbitmq::plugin_dir
$rabbitmq_user = $rabbitmq::rabbitmq_user
$rabbitmq_group = $rabbitmq::rabbitmq_group
$rabbitmq_home = $rabbitmq::rabbitmq_home
$port = $rabbitmq::port
$tcp_keepalive = $rabbitmq::tcp_keepalive
$tcp_backlog = $rabbitmq::tcp_backlog
$tcp_sndbuf = $rabbitmq::tcp_sndbuf
$tcp_recbuf = $rabbitmq::tcp_recbuf
$heartbeat = $rabbitmq::heartbeat
$service_name = $rabbitmq::service_name
$ssl = $rabbitmq::ssl
$ssl_only = $rabbitmq::ssl_only
$ssl_cacert = $rabbitmq::ssl_cacert
$ssl_cert = $rabbitmq::ssl_cert
$ssl_key = $rabbitmq::ssl_key
$ssl_depth = $rabbitmq::ssl_depth
$ssl_cert_password = $rabbitmq::ssl_cert_password
$ssl_port = $rabbitmq::ssl_port
$ssl_interface = $rabbitmq::ssl_interface
$ssl_management_port = $rabbitmq::ssl_management_port
$ssl_stomp_port = $rabbitmq::ssl_stomp_port
$ssl_verify = $rabbitmq::ssl_verify
$ssl_fail_if_no_peer_cert = $rabbitmq::ssl_fail_if_no_peer_cert
$ssl_versions = $rabbitmq::ssl_versions
$ssl_ciphers = $rabbitmq::ssl_ciphers
$stomp_port = $rabbitmq::stomp_port
$stomp_ssl_only = $rabbitmq::stomp_ssl_only
$ldap_auth = $rabbitmq::ldap_auth
$ldap_server = $rabbitmq::ldap_server
$ldap_user_dn_pattern = $rabbitmq::ldap_user_dn_pattern
$ldap_other_bind = $rabbitmq::ldap_other_bind
$ldap_use_ssl = $rabbitmq::ldap_use_ssl
$ldap_port = $rabbitmq::ldap_port
$ldap_log = $rabbitmq::ldap_log
$ldap_config_variables = $rabbitmq::ldap_config_variables
$wipe_db_on_cookie_change = $rabbitmq::wipe_db_on_cookie_change
$config_variables = $rabbitmq::config_variables
$config_kernel_variables = $rabbitmq::config_kernel_variables
$admin_enable = $rabbitmq::admin_enable
$cluster_node_type = $rabbitmq::cluster_node_type
$cluster_nodes = $rabbitmq::cluster_nodes
$config = $rabbitmq::config
$config_cluster = $rabbitmq::config_cluster
$config_path = $rabbitmq::config_path
$config_stomp = $rabbitmq::config_stomp
$config_shovel = $rabbitmq::config_shovel
$config_shovel_statics = $rabbitmq::config_shovel_statics
$default_user = $rabbitmq::default_user
$default_pass = $rabbitmq::default_pass
$env_config = $rabbitmq::env_config
$env_config_path = $rabbitmq::env_config_path
$erlang_cookie = $rabbitmq::erlang_cookie
$interface = $rabbitmq::interface
$management_port = $rabbitmq::management_port
$management_ssl = $rabbitmq::management_ssl
$management_hostname = $rabbitmq::management_hostname
$node_ip_address = $rabbitmq::node_ip_address
$plugin_dir = $rabbitmq::plugin_dir
$rabbitmq_user = $rabbitmq::rabbitmq_user
$rabbitmq_group = $rabbitmq::rabbitmq_group
$rabbitmq_home = $rabbitmq::rabbitmq_home
$port = $rabbitmq::port
$tcp_keepalive = $rabbitmq::tcp_keepalive
$tcp_backlog = $rabbitmq::tcp_backlog
$tcp_sndbuf = $rabbitmq::tcp_sndbuf
$tcp_recbuf = $rabbitmq::tcp_recbuf
$heartbeat = $rabbitmq::heartbeat
$service_name = $rabbitmq::service_name
$ssl = $rabbitmq::ssl
$ssl_only = $rabbitmq::ssl_only
$ssl_cacert = $rabbitmq::ssl_cacert
$ssl_cert = $rabbitmq::ssl_cert
$ssl_key = $rabbitmq::ssl_key
$ssl_depth = $rabbitmq::ssl_depth
$ssl_cert_password = $rabbitmq::ssl_cert_password
$ssl_port = $rabbitmq::ssl_port
$ssl_interface = $rabbitmq::ssl_interface
$ssl_management_port = $rabbitmq::ssl_management_port
$ssl_stomp_port = $rabbitmq::ssl_stomp_port
$ssl_verify = $rabbitmq::ssl_verify
$ssl_fail_if_no_peer_cert = $rabbitmq::ssl_fail_if_no_peer_cert
$ssl_versions = $rabbitmq::ssl_versions
$ssl_ciphers = $rabbitmq::ssl_ciphers
$stomp_port = $rabbitmq::stomp_port
$stomp_ssl_only = $rabbitmq::stomp_ssl_only
$ldap_auth = $rabbitmq::ldap_auth
$ldap_server = $rabbitmq::ldap_server
$ldap_user_dn_pattern = $rabbitmq::ldap_user_dn_pattern
$ldap_other_bind = $rabbitmq::ldap_other_bind
$ldap_use_ssl = $rabbitmq::ldap_use_ssl
$ldap_port = $rabbitmq::ldap_port
$ldap_log = $rabbitmq::ldap_log
$ldap_config_variables = $rabbitmq::ldap_config_variables
$wipe_db_on_cookie_change = $rabbitmq::wipe_db_on_cookie_change
$config_variables = $rabbitmq::config_variables
$config_kernel_variables = $rabbitmq::config_kernel_variables
$config_management_variables = $rabbitmq::config_management_variables
$config_additional_variables = $rabbitmq::config_additional_variables
$auth_backends = $rabbitmq::auth_backends
$cluster_partition_handling = $rabbitmq::cluster_partition_handling
$file_limit = $rabbitmq::file_limit
$auth_backends = $rabbitmq::auth_backends
$cluster_partition_handling = $rabbitmq::cluster_partition_handling
$file_limit = $rabbitmq::file_limit
$collect_statistics_interval = $rabbitmq::collect_statistics_interval
$ipv6 = $rabbitmq::ipv6
$inetrc_config = $rabbitmq::inetrc_config
$inetrc_config_path = $rabbitmq::inetrc_config_path
$ipv6 = $rabbitmq::ipv6
$inetrc_config = $rabbitmq::inetrc_config
$inetrc_config_path = $rabbitmq::inetrc_config_path

if $ssl_only {
$default_ssl_env_variables = {}
Expand All @@ -81,10 +80,19 @@
}
}

# This seems like a sensible default, and I think we have to assign it here
# to be safe. Use $node_ip_address (which can also be undef) if
# $management_ip_address is not set.
if $rabbitmq::management_ip_address {
$management_ip_address = $rabbitmq::management_ip_address
} else {
$management_ip_address = $rabbitmq::node_ip_address
}

$inetrc_env = {'export ERL_INETRC' => $inetrc_config_path}

# Handle env variables.
$_environment_variables = merge($default_ssl_env_variables, $inetrc_env, $rabbitmq::environment_variables)
$_environment_variables = $default_ssl_env_variables + $inetrc_env + $rabbitmq::environment_variables

if $ipv6 {
# must append "-proto_dist inet6_tcp" to any provided ERL_ARGS for
Expand All @@ -104,7 +112,7 @@
merge($memo, {"RABBITMQ_${item}_ERL_ARGS" => $munged})
}
$environment_variables = merge($_environment_variables, $ipv6_env)
$environment_variables = $_environment_variables + $ipv6_env
} else {
$environment_variables = $_environment_variables
}
Expand Down
52 changes: 30 additions & 22 deletions manifests/init.pp
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
# Main rabbitmq class
# rabbitmq
#
# @summary Main class for rabbitmq module
#
# @example Declaring the class
# class { 'rabbitmq': }
#
# @param management_ip_address 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.
# @param node_ip_address 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.
class rabbitmq(
Boolean $admin_enable = $rabbitmq::params::admin_enable,
Enum['ram', 'disk', 'disc'] $cluster_node_type = $rabbitmq::params::cluster_node_type,
Expand All @@ -14,48 +22,48 @@
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,
Optional[String] $erlang_cookie = $rabbitmq::params::erlang_cookie,
$interface = $rabbitmq::params::interface,
$management_ip = $rabbitmq::params::management_ip,
Optional[String] $erlang_cookie = undef,
Optional[String] $interface = undef,
Optional[String] $management_ip_address = undef,
$management_port = $rabbitmq::params::management_port,
$management_ssl = $rabbitmq::params::management_ssl,
Optional[String] $management_hostname = $rabbitmq::params::management_hostname,
String $node_ip_address = $rabbitmq::params::node_ip_address,
Boolean $management_ssl = $rabbitmq::params::management_ssl,
Optional[String] $management_hostname = undef,
Optional[String] $node_ip_address = undef,
$package_apt_pin = $rabbitmq::params::package_apt_pin,
String $package_ensure = $rabbitmq::params::package_ensure,
String $package_gpg_key = $rabbitmq::params::package_gpg_key,
String $package_name = $rabbitmq::params::package_name,
Optional[String] $package_provider = $rabbitmq::params::package_provider,
$package_source = undef,
Boolean $repos_ensure = $rabbitmq::params::repos_ensure,
$manage_repos = $rabbitmq::params::manage_repos,
$manage_repos = undef,
Stdlib::Absolutepath $plugin_dir = $rabbitmq::params::plugin_dir,
$rabbitmq_user = $rabbitmq::params::rabbitmq_user,
$rabbitmq_group = $rabbitmq::params::rabbitmq_group,
$rabbitmq_home = $rabbitmq::params::rabbitmq_home,
$port = $rabbitmq::params::port,
Boolean $tcp_keepalive = $rabbitmq::params::tcp_keepalive,
Integer $tcp_backlog = $rabbitmq::params::tcp_backlog,
Optional[Integer] $tcp_sndbuf = $rabbitmq::params::tcp_sndbuf,
Optional[Integer] $tcp_recbuf = $rabbitmq::params::tcp_recbuf,
Optional[Integer] $heartbeat = $rabbitmq::params::heartbeat,
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,
String $ssl_cacert = $rabbitmq::params::ssl_cacert,
String $ssl_cert = $rabbitmq::params::ssl_cert,
String $ssl_key = $rabbitmq::params::ssl_key,
Optional[Integer] $ssl_depth = $rabbitmq::params::ssl_depth,
Optional[String] $ssl_cert_password = $rabbitmq::params::ssl_cert_password,
Optional[String] $ssl_cacert = undef,
Optional[String] $ssl_cert = undef,
Optional[String] $ssl_key = undef,
Optional[Integer] $ssl_depth = undef,
Optional[String] $ssl_cert_password = undef,
$ssl_port = $rabbitmq::params::ssl_port,
$ssl_interface = $rabbitmq::params::ssl_interface,
Optional[String] $ssl_interface = undef,
$ssl_management_port = $rabbitmq::params::ssl_management_port,
$ssl_stomp_port = $rabbitmq::params::ssl_stomp_port,
$ssl_verify = $rabbitmq::params::ssl_verify,
$ssl_fail_if_no_peer_cert = $rabbitmq::params::ssl_fail_if_no_peer_cert,
Optional[Array] $ssl_versions = $rabbitmq::params::ssl_versions,
Optional[Array] $ssl_versions = undef,
Array $ssl_ciphers = $rabbitmq::params::ssl_ciphers,
Boolean $stomp_ensure = $rabbitmq::params::stomp_ensure,
Boolean $ldap_auth = $rabbitmq::params::ldap_auth,
Expand All @@ -77,9 +85,9 @@
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,
Optional[Array] $auth_backends = $rabbitmq::params::auth_backends,
Optional[Array] $auth_backends = undef,
$key_content = undef,
Optional[Integer] $collect_statistics_interval = $rabbitmq::params::collect_statistics_interval,
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,
Expand All @@ -92,8 +100,8 @@
if ! is_integer($management_port) {
validate_re($management_port, '\d+')
}
if ! is_integer($port) {
validate_re($port, ['\d+','UNSET'])
if $port and ! is_integer($port) {
validate_re($port, '\d+')
}
if ! is_integer($stomp_port) {
validate_re($stomp_port, '\d+')
Expand Down
14 changes: 7 additions & 7 deletions manifests/install/rabbitmqadmin.pp
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,18 @@

$default_user = $rabbitmq::default_user
$default_pass = $rabbitmq::default_pass
$node_ip_address = $rabbitmq::node_ip_address
$management_ip_address = $rabbitmq::management_ip_address

if $rabbitmq::node_ip_address == 'UNSET' {
if !($management_ip_address) {
# Pull from localhost if we don't have an explicit bind address
$curl_prefix = ''
$sanitized_ip = '127.0.0.1'
} elsif is_ipv6_address($node_ip_address) {
$curl_prefix = "--noproxy ${node_ip_address} -g -6"
$sanitized_ip = join(enclose_ipv6(any2array($node_ip_address)), ',')
} elsif is_ipv6_address($management_ip_address) {
$curl_prefix = "--noproxy ${management_ip_address} -g -6"
$sanitized_ip = join(enclose_ipv6(any2array($management_ip_address)), ',')
} else {
$curl_prefix = "--noproxy ${node_ip_address}"
$sanitized_ip = $node_ip_address
$curl_prefix = "--noproxy ${management_ip_address}"
$sanitized_ip = $management_ip_address
}

staging::file { 'rabbitmqadmin':
Expand Down
18 changes: 0 additions & 18 deletions manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,11 @@

#install
$admin_enable = true
$management_hostname = undef
$management_ip = '0.0.0.0'
$management_port = '15672'
$management_ssl = true
$package_apt_pin = ''
$package_gpg_key = 'https://www.rabbitmq.com/rabbitmq-release-signing-key.asc'
$repos_ensure = true
$manage_repos = undef
$service_ensure = 'running'
$service_manage = true
#config
Expand All @@ -91,29 +88,16 @@
$delete_guest_user = false
$env_config = 'rabbitmq/rabbitmq-env.conf.erb'
$env_config_path = '/etc/rabbitmq/rabbitmq-env.conf'
$erlang_cookie = undef
$interface = 'UNSET'
$node_ip_address = 'UNSET'
$port = '5672'
$tcp_keepalive = false
$tcp_backlog = 128
$tcp_sndbuf = undef
$tcp_recbuf = undef
$heartbeat = undef
$ssl = false
$ssl_only = false
$ssl_cacert = 'UNSET'
$ssl_cert = 'UNSET'
$ssl_key = 'UNSET'
$ssl_depth = undef
$ssl_cert_password = undef
$ssl_port = '5671'
$ssl_interface = 'UNSET'
$ssl_management_port = '15671'
$ssl_stomp_port = '6164'
$ssl_verify = 'verify_none'
$ssl_fail_if_no_peer_cert = false
$ssl_versions = undef
$ssl_ciphers = []
$stomp_ensure = false
$ldap_auth = false
Expand All @@ -133,9 +117,7 @@
$config_kernel_variables = {}
$config_management_variables = {}
$config_additional_variables = {}
$auth_backends = undef
$file_limit = '16384'
$collect_statistics_interval = undef
$ipv6 = false
$inetrc_config = 'rabbitmq/inetrc.erb'
$inetrc_config_path = '/etc/rabbitmq/inetrc'
Expand Down
Loading

0 comments on commit 4b5c0a3

Please sign in to comment.