Puppet Class: rsyslog

Inherits:
rsyslog::params
Defined in:
manifests/init.pp

Overview

Parameters:

  • messages_facilities (Any) (defaults to: [ '*.info', 'mail.none', 'authpriv.none', 'cron.none' ])

    List of facilities for /var/log/messages default: *.info, mail.none, authpriv.none, cron.none

  • ratelimitinterval (Any) (defaults to: '0')
  • filecreatemode (Any) (defaults to: undef)
  • service_ensure (Any) (defaults to: 'running')
  • service_enable (Any) (defaults to: true)
  • forwardformat (Any) (defaults to: false)
  • modules (Any) (defaults to: undef)
  • vars (Any) (defaults to: undef)
  • workdirectory (Any) (defaults to: '/var/lib/rsyslog')
  • rsyslogd_purge (Any) (defaults to: true)
  • rsyslogd_recurse (Any) (defaults to: true)
  • emerg (Any) (defaults to: $rsyslog::params::emerg_default)
  • omitlocallogging (Any) (defaults to: $rsyslog::params::omitlocallogging_default)
  • imjournalstatefile (Any) (defaults to: $rsyslog::params::imjournalstatefile_default)
  • rsyslogconf_mode (Any) (defaults to: '0644')
  • rsyslogd_mode (Any) (defaults to: '0755')
  • log_files (Any) (defaults to: [])
  • log_files_mode (Any) (defaults to: '0640')


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'manifests/init.pp', line 2

class rsyslog(
                $ratelimitinterval   = '0',
                $filecreatemode      = undef,
                $service_ensure        = 'running',
                $service_enable        = true,
                $forwardformat       = false,
                $modules             = undef,
                $vars                = undef,
                $workdirectory       = '/var/lib/rsyslog',
                $rsyslogd_purge      = true,
                $rsyslogd_recurse    = true,
                $emerg               = $rsyslog::params::emerg_default,
                $omitlocallogging    = $rsyslog::params::omitlocallogging_default,
                $imjournalstatefile  = $rsyslog::params::imjournalstatefile_default,
                $rsyslogconf_mode    = '0644',
                $rsyslogd_mode       = '0755',
                $log_files           = [],
                $log_files_mode      = '0640',
                $messages_facilities = [ '*.info', 'mail.none', 'authpriv.none', 'cron.none' ],
              ) inherits rsyslog::params {

  if ! defined(Class['syslogng'])
  {
    if($modules)
    {
      validate_array($modules)

      file { '/etc/rsyslog.d/modules.conf':
        ensure  => 'present',
        owner   => 'root',
        group   => 'root',
        mode    => $rsyslogconf_mode,
        content => template("${module_name}/modules/loadmodules.erb"),
        notify  => Service['rsyslog'],
        require => File['/etc/rsyslog.d'],
      }
    }

    if($vars)
    {
      validate_hash($vars)

      file { '/etc/rsyslog.d/vars.conf':
        ensure  => 'present',
        owner   => 'root',
        group   => 'root',
        mode    => $rsyslogconf_mode,
        content => template("${module_name}/modules/vars.erb"),
        notify  => Service['rsyslog'],
        require => File['/etc/rsyslog.d'],
      }
    }

    package { 'rsyslog':
      ensure => 'installed',
    }

    file { '/etc/rsyslog.d':
      ensure  => 'directory',
      owner   => 'root',
      group   => 'root',
      mode    => $rsyslogd_mode,
      purge   => $rsyslogd_purge,
      recurse => $rsyslogd_recurse,
      require => Package['rsyslog'],
    }

    file { '/etc/rsyslog.conf':
      ensure  => 'present',
      owner   => 'root',
      group   => 'root',
      mode    => $rsyslogconf_mode,
      content => template($rsyslog::params::rsyslogconf_template),
      notify  => Service['rsyslog'],
      require => [Package['rsyslog'],File['/etc/rsyslog.d']],
    }


    if($rsyslog::params::systemlogsocketname!=undef)
    {
      file { '/etc/rsyslog.d/listen.conf':
        ensure  => 'present',
        owner   => 'root',
        group   => 'root',
        mode    => $rsyslogconf_mode,
        content => template("${module_name}/modules/listen.erb"),
        notify  => Service['rsyslog'],
        require => File['/etc/rsyslog.d'],
      }
    }

    if(!empty($log_files))
    {
      file { $log_files:
        ensure => 'present',
        mode   => $log_files_mode,
      }
    }

    service { 'rsyslog':
      ensure  => $service_ensure,
      enable  => $service_enable,
      require => Package['rsyslog'],
    }
  }
}