diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | manifests/config.pp | 1 | ||||
-rw-r--r-- | manifests/imfile.pp | 4 | ||||
-rw-r--r-- | manifests/init.pp | 12 | ||||
-rw-r--r-- | manifests/modload.pp | 15 | ||||
-rw-r--r-- | manifests/params.pp | 34 | ||||
-rw-r--r-- | manifests/snippet.pp | 3 | ||||
-rw-r--r-- | metadata.json | 10 | ||||
-rw-r--r-- | templates/imfile.erb | 3 | ||||
-rw-r--r-- | templates/modload.erb | 3 | ||||
-rw-r--r-- | templates/rsyslog.conf.erb | 4 | ||||
-rw-r--r-- | tests/log_templates.pp | 4 | ||||
-rw-r--r-- | tests/multiple_hosts.pp | 18 |
13 files changed, 86 insertions, 27 deletions
@@ -161,7 +161,7 @@ The following lists all the class parameters this module accepts. remote_forward_format STRING Which forward format for remote servers should be used. Only used if remote_servers is false.
log_local true,false Log locally. Defaults to false.
log_auth_local true,false Just log auth facility locally. Defaults to false.
- custom_config STRING Specify your own template to use for client config. Defaults to undef. Example usage: custom_config => 'rsyslog/my_config.erb
+ custom_config STRING Specify your own template to use for client config. Defaults to undef. Example usage: custom_config => 'rsyslog/my_config.erb'
custom_params TODO TODO
server STRING Rsyslog server to log to. Will be used in the client configuration file. Only used, if remote_servers is false.
port '514' Remote server port. Only used if remote_servers is false.
diff --git a/manifests/config.pp b/manifests/config.pp index dbb37cc..813e784 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -43,6 +43,7 @@ class rsyslog::config { ensure => directory, owner => 'root', group => $rsyslog::run_group, + seltype => 'syslogd_var_lib_t', require => Class['rsyslog::install'], notify => Class['rsyslog::service'], } diff --git a/manifests/imfile.pp b/manifests/imfile.pp index 28665f8..bd0afa3 100644 --- a/manifests/imfile.pp +++ b/manifests/imfile.pp @@ -29,10 +29,12 @@ define rsyslog::imfile( $polling_interval = 10, $file_severity = 'notice', $run_file_monitor = true, - $persist_state_interval = 0 + $persist_state_interval = 0, ) { + include rsyslog + $extra_modules = $rsyslog::extra_modules file { "${rsyslog::rsyslog_d}${name}.conf": ensure => file, diff --git a/manifests/init.pp b/manifests/init.pp index 6cd0da8..76d6102 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,6 +1,7 @@ # == Class: rsyslog # -# Meta class to install rsyslog with a basic configuration. You probably want rsyslog::client or rsyslog::server +# Meta class to install rsyslog with a basic configuration. +# You probably want rsyslog::client or rsyslog::server # # === Parameters # @@ -38,9 +39,16 @@ class rsyslog ( $server_conf = $rsyslog::params::server_conf, $ssl = $rsyslog::params::ssl, $modules = $rsyslog::params::modules, - $preserve_fqdn = $rsyslog::params::preserve_fqdn + $preserve_fqdn = $rsyslog::params::preserve_fqdn, + $max_message_size = $rsyslog::params::max_message_size, + $extra_modules = $rsyslog::params::extra_modules ) inherits rsyslog::params { class { 'rsyslog::install': } class { 'rsyslog::config': } + + if $extra_modules != [] { + class { 'rsyslog::modload': } + } + class { 'rsyslog::service': } } diff --git a/manifests/modload.pp b/manifests/modload.pp new file mode 100644 index 0000000..7a838af --- /dev/null +++ b/manifests/modload.pp @@ -0,0 +1,15 @@ +# == Class: rsyslog::modload +# + +class rsyslog::modload ( + $modload_filename = '10-modload.conf', +) { + file { "${rsyslog::rsyslog_d}${modload_filename}": + ensure => file, + owner => 'root', + group => $rsyslog::run_group, + content => template('rsyslog/modload.erb'), + require => Class['rsyslog::install'], + notify => Class['rsyslog::service'], + } +} diff --git a/manifests/params.pp b/manifests/params.pp index b0014d2..0519037 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,6 +1,7 @@ # == Class: rsyslog::params # -# This defines default configuration values for rsyslog. You don't want to use it directly. +# This defines default configuration values for rsyslog. +# You don't want to use it directly. # # === Parameters # @@ -12,6 +13,8 @@ # class rsyslog::params { + $max_message_size = '2k' + case $::osfamily { debian: { $rsyslog_package_name = 'rsyslog' @@ -45,6 +48,8 @@ class rsyslog::params { $preserve_fqdn = false $service_hasrestart = true $service_hasstatus = true + $extra_modules = [] + } redhat: { if $::operatingsystem == 'Amazon' { @@ -120,12 +125,14 @@ class rsyslog::params { $preserve_fqdn = false $service_hasrestart = true $service_hasstatus = true + $extra_modules = [] } - sles: { + suse: { $rsyslog_package_name = 'rsyslog' - $relp_package_name = 'rsyslog-module-relp' - $mysql_package_name = 'rsyslog-module-mysql' - $pgsql_package_name = 'rsyslog-module-pgsql' + $relp_package_name = false + $mysql_package_name = false + $pgsql_package_name = false + $gnutls_package_name = false $package_status = 'latest' $rsyslog_d = '/etc/rsyslog.d/' $rsyslog_conf = '/etc/rsyslog.conf' @@ -134,14 +141,20 @@ class rsyslog::params { $run_group = 'root' $log_user = 'root' $log_group = 'root' - $log_style = 'sles' + $log_style = 'debian' $perm_file = '0600' $perm_dir = '0750' $spool_dir = '/var/spool/rsyslog/' $service_name = 'syslog' - $client_conf = "${rsyslog_d}client.conf" - $server_conf = "${rsyslog_d}server.conf" - } + $client_conf = 'client' + $server_conf = 'server' + $modules = [ + '$ModLoad imuxsock # provides support for local system logging', + '$ModLoad imklog # provides kernel logging support (previously done by rklogd)', + '#$ModLoad immark # provides --MARK-- message capability', + ] + $extra_modules = [] + } freebsd: { $rsyslog_package_name = 'sysutils/rsyslog5' $relp_package_name = 'sysutils/rsyslog5-relp' @@ -174,6 +187,7 @@ class rsyslog::params { $preserve_fqdn = false $service_hasrestart = true $service_hasstatus = true + $extra_modules = [] } default: { @@ -210,6 +224,8 @@ class rsyslog::params { $preserve_fqdn = false $service_hasrestart = true $service_hasstatus = true + $extra_modules = [] + } default: { fail("The ${module_name} module is not supported on ${::osfamily}/${::operatingsystem}.") diff --git a/manifests/snippet.pp b/manifests/snippet.pp index 9edf179..f638396 100644 --- a/manifests/snippet.pp +++ b/manifests/snippet.pp @@ -1,6 +1,7 @@ # == Define: rsyslog::snippet # -# This class allows for you to create a rsyslog configuration file with whatever content you pass in. +# This class allows for you to create a rsyslog configuration file with +# whatever content you pass in. # # === Parameters # diff --git a/metadata.json b/metadata.json index 677b972..741b9a4 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "saz-rsyslog", - "version": "3.2.0", + "version": "3.3.0", "author": "saz", "summary": "Manage rsyslog client and server", "license": "Apache License, Version 2.0", @@ -18,6 +18,12 @@ "operatingsystem": "CentOS" }, { + "operatingsystem": "SuSe" + }, + { + "operatingsystem": "SLES" + }, + { "operatingsystem": "OracleLinux" }, { @@ -39,7 +45,7 @@ "requirements": [ { "name": "pe", - "version_requirement": "3.2.x" + "version_requirement": ">= 3.2.0 < 3.4.0" }, { "name": "puppet", diff --git a/templates/imfile.erb b/templates/imfile.erb index 8b24edb..4a11c72 100644 --- a/templates/imfile.erb +++ b/templates/imfile.erb @@ -1,4 +1,7 @@ +<% if @extra_modules.empty?() or !@extra_modules.include?('imfile') -%> $ModLoad imfile +<% end -%> + $InputFileName <%= @file_name %> $InputFileTag <%= @file_tag %> diff --git a/templates/modload.erb b/templates/modload.erb new file mode 100644 index 0000000..a14a612 --- /dev/null +++ b/templates/modload.erb @@ -0,0 +1,3 @@ +<% @extra_modules.each do |mod| -%> +$ModLoad <%= mod %> +<% end -%> diff --git a/templates/rsyslog.conf.erb b/templates/rsyslog.conf.erb index ef2a05e..f024569 100644 --- a/templates/rsyslog.conf.erb +++ b/templates/rsyslog.conf.erb @@ -11,6 +11,10 @@ ########################### #### GLOBAL DIRECTIVES #### ########################### +# +# Set max message size for sending and receiving +# +$MaxMessageSize <%= scope.lookupvar('rsyslog::max_message_size') %> # # Set the default permissions for all log files. diff --git a/tests/log_templates.pp b/tests/log_templates.pp index 79f1e8f..a6bf75b 100644 --- a/tests/log_templates.pp +++ b/tests/log_templates.pp @@ -1,4 +1,4 @@ -class{'rsyslog::client': +class { 'rsyslog::client': log_templates => [ { name => 'RFC3164fmt', @@ -6,4 +6,4 @@ class{'rsyslog::client': }, ], actionfiletemplate => 'RFC3164fmt', -}
\ No newline at end of file +} diff --git a/tests/multiple_hosts.pp b/tests/multiple_hosts.pp index 0852047..9e5a60e 100644 --- a/tests/multiple_hosts.pp +++ b/tests/multiple_hosts.pp @@ -1,17 +1,17 @@ -class{'rsyslog::client': +class { 'rsyslog::client': remote_servers => [ { - host => 'logs.example.org', + host => 'logs.example.org', }, { - port => '55514', + port => '55514', }, { - host => 'logs.somewhere.com', - port => '555', - pattern => '*.log', - protocol => 'tcp', - format => 'RFC3164fmt', + host => 'logs.somewhere.com', + port => '555', + pattern => '*.log', + protocol => 'tcp', + format => 'RFC3164fmt', }, ] -}
\ No newline at end of file +} |