From 94c961688e1c175a5b8662420d5676764472996f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Tue, 30 Aug 2011 17:56:53 +0300 Subject: [PATCH] Added syslog::standalone class. Still missing log rotation. --- syslog/manifests/init.pp | 109 ++++++++++++++++++++++++ syslog/templates/syslog.conf.server.erb | 3 + 2 files changed, 112 insertions(+) create mode 100644 syslog/templates/syslog.conf.server.erb diff --git a/syslog/manifests/init.pp b/syslog/manifests/init.pp index 9343ee5..25fec01 100644 --- a/syslog/manifests/init.pp +++ b/syslog/manifests/init.pp @@ -108,3 +108,112 @@ class syslog::client::rsyslog { } } + + +# Install standalone syslog client +# +# === Global variables: +# +# $syslog_type: +# Syslog type to use. Valid values are syslogd and rsyslog. +# Default depends on operating system. +# +# $syslog_datadir: +# Directory where to store logs. Defaults to /srv/log. +# +class syslog::standalone { + + if !$syslog_type { + case $operatingsystem { + "centos": { $syslog_type = "syslogd" } + "fedora": { $syslog_type = "rsyslog" } + "openbsd": { $syslog_type = "syslogd" } + "ubuntu": { $syslog_type = "rsyslog" } + } + } + + if $syslog_datadir { + file { $syslog_datadir: + ensure => directory, + mode => 0750, + owner => "root", + group => $operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, + } + file { "/srv/log": + ensure => link, + target => $syslog_datadir, + owner => "root", + group => $operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, + require => File[$syslog_datadir], + } + } else { + file { "/srv/log": + ensure => directory, + mode => 0755, + owner => "root", + group => $operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, + } + } + + file { "/srv/log/archive": + ensure => directory, + mode => 0755, + owner => "root", + group => $operatingsystem ? { + "openbsd" => "wheel", + default => "root", + }, + require => File["/srv/log"], + } + + file { "/var/log/all.log": + ensure => link, + target => "/srv/log/all.log", + } + + case $syslog_type { + "syslogd": { include syslog::standalone::syslogd } + "rsyslog": { include syslog::standalone::rsyslog } + default: { fail("Unknown \$syslog_type '$syslog_type'") } + } + +} + + +# Install standalone syslog host using syslogd. +# +class syslog::standalone::syslogd inherits syslog::client::syslogd { + + File["/etc/syslog.conf"] { + content => template("syslog/syslog.conf.$operatingsystem.erb", + "syslog/syslog.conf.server.erb"), + require => [ File["/srv/log"], + File["/var/log/all.log"], ], + } + +} + + +# Install standalone syslog host using rsyslog. +# +class syslog::standalone::rsyslog inherits syslog::client::rsyslog { + + File["/etc/rsyslog.conf"] { + content => template("syslog/rsyslog.conf.erb", + "syslog/syslog.conf.$operatingsystem.erb", + "syslog/syslog.conf.server.erb"), + require => [ File["/srv/log"], + File["/var/log/all.log"], ], + } + +} + diff --git a/syslog/templates/syslog.conf.server.erb b/syslog/templates/syslog.conf.server.erb new file mode 100644 index 0000000..d58b076 --- /dev/null +++ b/syslog/templates/syslog.conf.server.erb @@ -0,0 +1,3 @@ + +*.* /srv/log/all.log +mark.* /srv/log/all.log