1 # Class: rabbitmq::config
2 # Sets all the configuration values for RabbitMQ and creates the directories for
4 class rabbitmq::config {
6 $admin_enable = $rabbitmq::admin_enable
7 $cluster_node_type = $rabbitmq::cluster_node_type
8 $cluster_nodes = $rabbitmq::cluster_nodes
9 $config = $rabbitmq::config
10 $config_cluster = $rabbitmq::config_cluster
11 $config_path = $rabbitmq::config_path
12 $config_stomp = $rabbitmq::config_stomp
13 $default_user = $rabbitmq::default_user
14 $default_pass = $rabbitmq::default_pass
15 $env_config = $rabbitmq::env_config
16 $env_config_path = $rabbitmq::env_config_path
17 $erlang_cookie = $rabbitmq::erlang_cookie
18 $interface = $rabbitmq::interface
19 $management_port = $rabbitmq::management_port
20 $node_ip_address = $rabbitmq::node_ip_address
21 $plugin_dir = $rabbitmq::plugin_dir
22 $rabbitmq_user = $rabbitmq::rabbitmq_user
23 $rabbitmq_group = $rabbitmq::rabbitmq_group
24 $rabbitmq_home = $rabbitmq::rabbitmq_home
25 $port = $rabbitmq::port
26 $tcp_keepalive = $rabbitmq::tcp_keepalive
27 $service_name = $rabbitmq::service_name
29 $ssl_only = $rabbitmq::ssl_only
30 $ssl_cacert = $rabbitmq::ssl_cacert
31 $ssl_cert = $rabbitmq::ssl_cert
32 $ssl_key = $rabbitmq::ssl_key
33 $ssl_port = $rabbitmq::ssl_port
34 $ssl_interface = $rabbitmq::ssl_interface
35 $ssl_management_port = $rabbitmq::ssl_management_port
36 $ssl_stomp_port = $rabbitmq::ssl_stomp_port
37 $ssl_verify = $rabbitmq::ssl_verify
38 $ssl_fail_if_no_peer_cert = $rabbitmq::ssl_fail_if_no_peer_cert
39 $ssl_versions = $rabbitmq::ssl_versions
40 $ssl_ciphers = $rabbitmq::ssl_ciphers
41 $stomp_port = $rabbitmq::stomp_port
42 $ldap_auth = $rabbitmq::ldap_auth
43 $ldap_server = $rabbitmq::ldap_server
44 $ldap_user_dn_pattern = $rabbitmq::ldap_user_dn_pattern
45 $ldap_other_bind = $rabbitmq::ldap_other_bind
46 $ldap_use_ssl = $rabbitmq::ldap_use_ssl
47 $ldap_port = $rabbitmq::ldap_port
48 $ldap_log = $rabbitmq::ldap_log
49 $ldap_config_variables = $rabbitmq::ldap_config_variables
50 $wipe_db_on_cookie_change = $rabbitmq::wipe_db_on_cookie_change
51 $config_variables = $rabbitmq::config_variables
52 $config_kernel_variables = $rabbitmq::config_kernel_variables
53 $cluster_partition_handling = $rabbitmq::cluster_partition_handling
54 $file_limit = $rabbitmq::file_limit
55 $default_env_variables = {
57 'NODE_IP_ADDRESS' => $node_ip_address
60 # Handle env variables.
61 $environment_variables = merge($default_env_variables, $rabbitmq::environment_variables)
63 file { '/etc/rabbitmq':
70 file { '/etc/rabbitmq/ssl':
77 file { 'rabbitmq.config':
80 content => template($config),
84 notify => Class['rabbitmq::service'],
87 file { 'rabbitmq-env.config':
89 path => $env_config_path,
90 content => template($env_config),
94 notify => Class['rabbitmq::service'],
98 file { 'rabbitmqadmin.conf':
100 path => '/etc/rabbitmq/rabbitmqadmin.conf',
101 content => template('rabbitmq/rabbitmqadmin.conf.erb'),
105 require => File['/etc/rabbitmq'],
111 file { '/etc/default/rabbitmq-server':
113 content => template('rabbitmq/default.erb'),
117 notify => Class['rabbitmq::service'],
121 if versioncmp($::operatingsystemmajrelease, '7') >= 0 {
122 file { '/etc/systemd/system/rabbitmq-server.service.d':
127 selinux_ignore_defaults => true,
129 file { '/etc/systemd/system/rabbitmq-server.service.d/limits.conf':
130 content => template('rabbitmq/rabbitmq-server.service.d/limits.conf'),
134 notify => Exec['rabbitmq-systemd-reload'],
136 exec { 'rabbitmq-systemd-reload':
137 command => '/usr/bin/systemctl daemon-reload',
138 notify => Class['Rabbitmq::Service'],
142 file { '/etc/security/limits.d/rabbitmq-server.conf':
143 content => template('rabbitmq/limits.conf'),
147 notify => Class['Rabbitmq::Service'],
157 if $erlang_cookie == undef {
158 fail('You must set the $erlang_cookie value in order to configure clustering.')
160 rabbitmq_erlang_cookie { "${rabbitmq_home}/.erlang.cookie":
161 content => $erlang_cookie,
162 force => $wipe_db_on_cookie_change,
163 rabbitmq_user => $rabbitmq_user,
164 rabbitmq_group => $rabbitmq_group,
165 rabbitmq_home => $rabbitmq_home,
166 service_name => $service_name,
167 before => File['rabbitmq.config'],
168 notify => Class['rabbitmq::service'],