Puppet/RabbitMQ: support clustering
authorGiulio Fidente <gfidente@redhat.com>
Fri, 13 Feb 2015 11:36:05 +0000 (06:36 -0500)
committerGiulio Fidente <gfidente@redhat.com>
Fri, 13 Feb 2015 16:24:44 +0000 (11:24 -0500)
Allow to install & configure RabbitMQ in cluster with Puppet on
the controller node.

Change-Id: Iebbf55c75b8c80453c7313bb41faf42c7fdf7159

puppet/controller-puppet.yaml
puppet/manifests/overcloud_controller.pp

index a4d68ff..a3a422c 100644 (file)
@@ -698,9 +698,9 @@ resources:
                 # Rabbit
                 rabbit_username: {get_input: rabbit_username}
                 rabbit_password: {get_input: rabbit_password}
-                rabbit_cookie: {get_input: rabbit_cookie}
                 rabbit_client_use_ssl: {get_input: rabbit_client_use_ssl}
                 rabbit_client_port: {get_input: rabbit_client_port}
+                rabbitmq::erlang_cookie: {get_input: rabbit_cookie}
                 # Misc
                 neutron_public_interface_ip: {get_input: neutron_public_interface_ip}
                 ntp::servers: {get_input: ntp_servers}
index b37f723..2e83b8c 100644 (file)
@@ -110,11 +110,18 @@ if hiera('step') >= 1 {
   Class['rabbitmq'] -> Rabbitmq_user <| |>
   Class['rabbitmq'] -> Rabbitmq_user_permissions <| |>
 
-  # TODO Rabbit HA
+  $rabbit_nodes = split(downcase(hiera('rabbit_nodes', $::hostname)), ',')
+  if count($rabbit_nodes) > 1 {
+    $rabbit_cluster = true
+  }
+  else {
+    $rabbit_cluster = false
+  }
   class { 'rabbitmq':
-    package_provider  => $rabbit_provider,
-    config_cluster    => false,
-    node_ip_address   => hiera('controller_host'),
+    package_provider => $rabbit_provider,
+    config_cluster   => $rabbit_cluster,
+    cluster_nodes    => $rabbit_nodes,
+    node_ip_address  => hiera('controller_host'),
   }
 
   rabbitmq_vhost { '/':