diff options
Diffstat (limited to 'puppet/modules/rsyslog/manifests/server.pp')
-rw-r--r-- | puppet/modules/rsyslog/manifests/server.pp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/puppet/modules/rsyslog/manifests/server.pp b/puppet/modules/rsyslog/manifests/server.pp new file mode 100644 index 00000000..13ee56de --- /dev/null +++ b/puppet/modules/rsyslog/manifests/server.pp @@ -0,0 +1,70 @@ +# == Class: rsyslog::server +# +# This class configures rsyslog for a server role. +# +# === Parameters +# +# [*enable_tcp*] +# [*enable_udp*] +# [*enable_onefile*] +# [*server_dir*] +# [*custom_config*] +# [*high_precision_timestamps*] +# [*ssl_ca*] +# [*ssl_cert*] +# [*ssl_key*] +# +# === Variables +# +# === Examples +# +# Defaults +# +# class { 'rsyslog::server': } +# +# Create seperate directory per host +# +# class { 'rsyslog::server': +# custom_config => 'rsyslog/server-hostname.conf.erb' +# } +# +class rsyslog::server ( + $enable_tcp = true, + $enable_udp = true, + $enable_onefile = false, + $server_dir = '/srv/log/', + $custom_config = undef, + $port = '514', + $high_precision_timestamps = false, + $ssl_ca = undef, + $ssl_cert = undef, + $ssl_key = undef, + $rotate = undef +) inherits rsyslog { + + ### Logrotate policy + $logpath = $rotate ? { + 'year' => '/%$YEAR%/', + 'YEAR' => '/%$YEAR%/', + 'month' => '/%$YEAR%/%$MONTH%/', + 'MONTH' => '/%$YEAR%/%$MONTH%/', + 'day' => '/%$YEAR%/%$MONTH%/%$DAY%/', + 'DAY' => '/%$YEAR%/%$MONTH%/%$DAY%/', + default => '/', + } + + if $custom_config { + $real_content = template($custom_config) + } else { + $real_content = template("${module_name}/server-default.conf.erb") + } + + rsyslog::snippet { $rsyslog::server_conf: + ensure => present, + content => $real_content, + } + + if $rsyslog::ssl and (!$enable_tcp or $ssl_ca == undef or $ssl_cert == undef or $ssl_key == undef) { + fail('You need to define all the ssl options and enable tcp in order to use SSL.') + } +} |