Skip to content
Snippets Groups Projects
rabbitmq.pp 1.54 KiB
Newer Older
  • Learn to ignore specific revisions
  • class iaas::profile::rabbitmq (
    
      $admin_interface = hiera('iaas::admin_interface', undef),
    
      $servers = undef,
      $user = undef,
      $password = undef,
      $erlang = undef,
    
    ) {
      class {'erlang': } ->
      package { 'erlang-base':
        ensure => 'latest',
      } ->
      class { '::rabbitmq':
        service_ensure => 'running',
    
        delete_guest_user => true,
        config_cluster => true,
        cluster_nodes => $servers,
        erlang_cookie => $erlang,
        cluster_node_type => 'ram',
        wipe_db_on_cookie_change => true,
        cluster_partition_handling => 'pause_minority',
    
        config_variables => { 'tcp_listen_options' => "[binary, {packet, raw}, {reuseaddr, true}, {backlog, 128}, {nodelay, true}, {exit_on_close, false}, {keepalive, true}]" },
    
          'NODENAME'     => "rabbit@${node_hostname}",
    
      } ->
      rabbitmq_user { $user:
        admin => true,
        password => $password,
      } ->
      rabbitmq_user_permissions { "${user}@/":
        configure_permission => '.*',
        write_permission => '.*',
        read_permission => '.*',
        provider => 'rabbitmqctl',
    
     } ->
     rabbitmq_policy { 'ha-all@/':
       pattern => '.*',
       priority => 0,
       applyto => 'all',
       definition => {
         'ha-mode' => 'all',
         'ha-sync-mode' => 'automatic',
       },
     }
    
      #@@haproxy::balancermember { "rabbitmq_${::fqdn}":
      #  listening_service => 'rabbitmq',
      #  server_names => $::hostname,
      #  ipaddresses => $::facts["ipaddress_${admin_interface}"],
      #  ports => '5672',
      #  options => 'check inter 2000 rise 2 fall 5',
      #}