Note that exim contains tracker-specific configuration
[mirror/dsa-puppet.git] / 3rdparty / modules / rabbitmq / manifests / config.pp
index 8abaeb9..a1cdf26 100644 (file)
@@ -77,7 +77,6 @@ class rabbitmq::config {
   $inetrc_config                       = $rabbitmq::inetrc_config
   $inetrc_config_path                  = $rabbitmq::inetrc_config_path
   $ssl_erl_dist                        = $rabbitmq::ssl_erl_dist
-  $loopback_users                      = $rabbitmq::loopback_users
 
   if $ssl_only {
     $default_ssl_env_variables = {}
@@ -158,6 +157,7 @@ class rabbitmq::config {
     owner   => '0',
     group   => $rabbitmq_group,
     mode    => '0640',
+    notify  => Class['rabbitmq::service'],
   }
 
   file { 'rabbitmq-env.config':
@@ -167,6 +167,7 @@ class rabbitmq::config {
     owner   => '0',
     group   => $rabbitmq_group,
     mode    => '0640',
+    notify  => Class['rabbitmq::service'],
   }
 
   file { 'rabbitmq-inetrc':
@@ -176,6 +177,7 @@ class rabbitmq::config {
     owner   => '0',
     group   => $rabbitmq_group,
     mode    => '0640',
+    notify  => Class['rabbitmq::service'],
   }
 
   if $admin_enable {
@@ -192,30 +194,88 @@ class rabbitmq::config {
 
   case $facts['os']['family'] {
     'Debian': {
+      if versioncmp($facts['os']['release']['full'], '16.04') >= 0 {
+        file { '/etc/systemd/system/rabbitmq-server.service.d':
+          ensure                  => directory,
+          owner                   => '0',
+          group                   => '0',
+          mode                    => '0755',
+          selinux_ignore_defaults => true,
+        }
+        -> file { '/etc/systemd/system/rabbitmq-server.service.d/limits.conf':
+          content => template('rabbitmq/rabbitmq-server.service.d/limits.conf'),
+          owner   => '0',
+          group   => '0',
+          mode    => '0644',
+          notify  => Exec['rabbitmq-systemd-reload'],
+        }
+        exec { 'rabbitmq-systemd-reload':
+          command     => '/bin/systemctl daemon-reload',
+          notify      => Class['Rabbitmq::Service'],
+          refreshonly => true,
+        }
+      }
       file { '/etc/default/rabbitmq-server':
         ensure  => file,
         content => template('rabbitmq/default.erb'),
         mode    => '0644',
         owner   => '0',
         group   => '0',
+        notify  => Class['rabbitmq::service'],
       }
     }
     'RedHat': {
+      if versioncmp($facts['os']['release']['major'], '7') >= 0 {
+        file { '/etc/systemd/system/rabbitmq-server.service.d':
+          ensure                  => directory,
+          owner                   => '0',
+          group                   => '0',
+          mode                    => '0755',
+          selinux_ignore_defaults => true,
+        }
+        -> file { '/etc/systemd/system/rabbitmq-server.service.d/limits.conf':
+          content => template('rabbitmq/rabbitmq-server.service.d/limits.conf'),
+          owner   => '0',
+          group   => '0',
+          mode    => '0644',
+          notify  => Exec['rabbitmq-systemd-reload'],
+        }
+        exec { 'rabbitmq-systemd-reload':
+          command     => '/bin/systemctl daemon-reload',
+          notify      => Class['Rabbitmq::Service'],
+          refreshonly => true,
+        }
+      }
       file { '/etc/security/limits.d/rabbitmq-server.conf':
         content => template('rabbitmq/limits.conf'),
         owner   => '0',
         group   => '0',
         mode    => '0644',
+        notify  => Class['Rabbitmq::Service'],
       }
     }
-    default: { }
-  }
-
-  if $facts['systemd'] { # systemd fact provided by systemd module
-    systemd::service_limits { "${service_name}.service":
-      limits          => {'LimitNOFILE' => $file_limit},
-      # The service will be notified when config changes
-      restart_service => false,
+    'Archlinux': {
+      file { '/etc/systemd/system/rabbitmq.service.d':
+        ensure                  => directory,
+        owner                   => '0',
+        group                   => '0',
+        mode                    => '0755',
+        selinux_ignore_defaults => true,
+      }
+      -> file { '/etc/systemd/system/rabbitmq.service.d/limits.conf':
+        content => template('rabbitmq/rabbitmq-server.service.d/limits.conf'),
+        owner   => '0',
+        group   => '0',
+        mode    => '0644',
+        notify  => Exec['rabbitmq-systemd-reload'],
+      }
+      exec { 'rabbitmq-systemd-reload':
+        command     => '/bin/systemctl daemon-reload',
+        notify      => Class['Rabbitmq::Service'],
+        refreshonly => true,
+      }
+    }
+    default: {
     }
   }
 
@@ -230,6 +290,7 @@ class rabbitmq::config {
       rabbitmq_home  => $rabbitmq_home,
       service_name   => $service_name,
       before         => File['rabbitmq.config'],
+      notify         => Class['rabbitmq::service'],
     }
   }
 }