From cdf34742a08ecfcb925c29bd6767a6def764c7c4 Mon Sep 17 00:00:00 2001
From: Bill MacAllister <whm@stanford.edu>
Date: Sun, 24 Nov 2013 13:43:46 -0800
Subject: [PATCH] syslog: More comments, change name of default, notify syslog
 on changes

---
 .../{90-local.conf => 90-local-default.conf}  |  0
 manifests/syslog.pp                           | 18 ++++++++
 manifests/syslog/config/rsyslog.pp            | 43 ++++++++++++-------
 manifests/syslog/fragment.pp                  |  2 +-
 4 files changed, 47 insertions(+), 16 deletions(-)
 rename files/syslog/etc/rsyslog.d/{90-local.conf => 90-local-default.conf} (100%)

diff --git a/files/syslog/etc/rsyslog.d/90-local.conf b/files/syslog/etc/rsyslog.d/90-local-default.conf
similarity index 100%
rename from files/syslog/etc/rsyslog.d/90-local.conf
rename to files/syslog/etc/rsyslog.d/90-local-default.conf
diff --git a/manifests/syslog.pp b/manifests/syslog.pp
index 7d724ec..ae1eaf4 100644
--- a/manifests/syslog.pp
+++ b/manifests/syslog.pp
@@ -1,3 +1,21 @@
+##############################################################################
+# Base syslog support
+##############################################################################
+#
+# This module uses rsyslog where possible otherwise syslog is used.
+#
+# The default rsyslog support preserves the use of /etc/syslog.conf.
+# The two most common overrides to this function are to not use
+# /etc/syslog.conf configuration and to not use the default configuration
+# that writes to /var/log/messages.  For example:
+#
+#  class s_ldap::conf::syslog-dev inherits base::syslog {
+#    Base::Syslog::Config::Rsyslog['/etc/rsyslog.conf'] {
+#      use_syslog_conf => false,
+#      use_default     => false,
+#    }
+#  }
+#
 #
 # Notes:
 # * the newsyslog service is responsible for ensuring the file permissions
diff --git a/manifests/syslog/config/rsyslog.pp b/manifests/syslog/config/rsyslog.pp
index 6ef9564..4ba695e 100644
--- a/manifests/syslog/config/rsyslog.pp
+++ b/manifests/syslog/config/rsyslog.pp
@@ -1,22 +1,35 @@
-# create rsyslog.conf
+##############################################################################
+# Create rsyslog.conf
+##############################################################################
+#
+# This define is used by the base::syslog module.
 
 define base::syslog::config::rsyslog(
-    $ensure          = 'present',
-    $source          = undef,
-    $owner           = 'root',
-    $group           = 'root',
-    $mode            = '0644',
-    $replace         = true,
-    $use_syslog_conf = true,
+  $ensure          = 'present',
+  $source          = undef,
+  $owner           = 'root',
+  $group           = 'root',
+  $mode            = '0644',
+  $replace         = true,
+  $use_syslog_conf = true,
+  $use_default     = true,
 ) {
 
-  if !$use_syslog_conf {
-    file {'/etc/rsyslog.d/90-local.conf':
-      ensure  => present,
-      source  => 'puppet:///modules/base/syslog/etc/rsyslog.d/90-local.conf',
-      owner   => $owner,
-      group   => $group,
-      mode    => $mode;
+  if !$use_syslog_conf and $use_default {
+    if $use_default {
+      file {'/etc/rsyslog.d/90-local-default.conf':
+        ensure  => present,
+        source  => 'puppet:///modules/base/syslog/etc/rsyslog.d/90-local-default.conf',
+        owner   => $owner,
+        group   => $group,
+        mode    => $mode,
+        notify  => Service['syslog'],
+      }
+    } else {
+      file {'/etc/rsyslog.d/90-local-default.conf':
+        ensure  => absent,
+        notify  => Service['syslog'],
+      }
     }
   }
 
diff --git a/manifests/syslog/fragment.pp b/manifests/syslog/fragment.pp
index c2defea..d71f461 100644
--- a/manifests/syslog/fragment.pp
+++ b/manifests/syslog/fragment.pp
@@ -21,7 +21,7 @@
 #      ensure => present;
 #    '95-local.conf':
 #      ensure => present,
-#      source => 'puppet:///modules/s_audit/etc/rsyslog.d/95-local.conf',
+#      source => 'puppet:///modules/s_audit/etc/rsyslog.d/95-local.conf';
 #  }
 
 define base::syslog::fragment(
-- 
GitLab