Skip to content
Snippets Groups Projects
rsyslog.pp 2.69 KiB
Newer Older
##############################################################################
# Create rsyslog.conf
##############################################################################
#
# This define is used by the base::syslog module.  It is not execpted
# to be used directly, but the actions of base::syslog overridden as
# needed.
#
# The use_ variables allow for the following transitions.
#
#  1. From an rsyslog configuration that pulls in an old syslog.conf
#     to a configuration that is all rsyslog and uses rsyslog
#     fragments.
#
#  2. From v5 to v7 of rsyslog.  To use the default v7 configuration
#     the syslog.conf transition must be complete.
#
# Example:
#
#  This example uses the default rsyslog version 7 configuration.
#
#  class s_ldap::conf::syslog-dev inherits base::syslog {
#    Base::Syslog::Config::Rsyslog['/etc/rsyslog.conf'] {
#      use_syslog_conf => false,
#      use_v5          => false,
#    }
#  }
Adam Lewenberg's avatar
Adam Lewenberg committed

define base::syslog::config::rsyslog(
  $ensure          = 'present',
  $source          = undef,
  $owner           = 'root',
  $group           = 'root',
  $mode            = '0644',
  $replace         = true,
  $use_syslog_conf = true,
  $use_default     = true,
Adam Lewenberg's avatar
Adam Lewenberg committed
) {
  if !$use_syslog_conf {
    if use_v5 {
      $rsyslog_tmpl = 'etc/rsyslog.d/20-templates-v5.conf'
      $rsyslog_def  = 'etc/rsyslog.d/95-default-v5.conf.erb'
    } else {
      $rsyslog_tmpl = 'etc/rsyslog.d/20-templates.conf'
      $rsyslog_def  = 'etc/rsyslog.d/95-default.conf.erb'
    }
      file {
        '/etc/rsyslog.d/20-templates.conf':
          ensure  => present,
          source  => "puppet:///modules/base/syslog/$rsyslog_tmpl",
          owner   => $owner,
          group   => $group,
          mode    => $mode,
          notify  => Service['syslog'];
        '/etc/rsyslog.d/95-default.conf':
          ensure  => present,
          content => template("base/syslog/$rsyslog_def"),
          owner   => $owner,
          group   => $group,
          mode    => $mode,
          notify  => Service['syslog'];
      file {
        '/etc/rsyslog.d/20-templates.conf':
          ensure  => absent,
          notify  => Service['syslog'];
        '/etc/rsyslog.d/95-default.conf':
          ensure  => absent,
          notify  => Service['syslog'];
Adam Lewenberg's avatar
Adam Lewenberg committed
  }
  # Template for the base rsyslog configuration.
  if $source {
    $template = undef
  } else {
    $template = template('base/syslog/rsyslog.conf.erb')
  }
Adam Lewenberg's avatar
Adam Lewenberg committed
  file { $name:
    ensure  => $ensure,
    source  => $source,
    content => $template,
    owner   => $owner,
    group   => $group,
    mode    => $mode,
    replace => $replace,
    notify  => Service['syslog'],
  }