diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | README.md | 39 | ||||
-rw-r--r-- | lib/facter/rsyslog_version.rb | 38 | ||||
-rw-r--r-- | manifests/client.pp | 127 | ||||
-rw-r--r-- | manifests/params.pp | 20 | ||||
-rw-r--r-- | spec/classes/rsyslog_client_spec.rb | 139 | ||||
-rw-r--r-- | spec/classes/rsyslog_database_spec.rb | 351 | ||||
-rw-r--r-- | spec/classes/rsyslog_server_spec.rb | 182 | ||||
-rw-r--r-- | spec/classes/rsyslog_spec.rb | 574 | ||||
-rw-r--r-- | spec/defines/rsyslog_imfile_spec.rb | 178 | ||||
-rw-r--r-- | spec/defines/rsyslog_snippet_spec.rb | 160 | ||||
-rw-r--r-- | templates/client.conf.erb | 10 | ||||
-rw-r--r-- | templates/rsyslog.conf.erb | 4 |
13 files changed, 1341 insertions, 482 deletions
@@ -2,3 +2,4 @@ pkg/ *.swp .forge-releng /spec/fixtures +.DS_Store @@ -19,13 +19,20 @@ Manage rsyslog client and server via Puppet #### Variables and default values
```
class { 'rsyslog::client':
- log_remote => true,
- remote_type => 'tcp',
- log_local => false,
- log_auth_local => false,
- custom_config => undef,
- server => 'log',
- port => '514',
+ log_remote => true,
+ spool_size => '1g',
+ remote_type => 'tcp',
+ remote_forward_format => 'RSYSLOG_ForwardFormat',
+ log_local => false,
+ log_auth_local => false,
+ custom_config => undef,
+ custom_params => undef,
+ server => 'log',
+ port => '514',
+ remote_servers => false,
+ ssl_ca => undef,
+ log_templates => false,
+ actionfiletemplate => false
}
```
for read from file
@@ -149,11 +156,17 @@ The following lists all the class parameters this module accepts. RSYSLOG::CLIENT CLASS PARAMETERS VALUES DESCRIPTION
-------------------------------------------------------------------
log_remote true,false Log Remotely. Defaults to true.
+ spool_size STRING Max size for disk queue if remote server failed. Defaults to '1g'.
remote_type 'tcp','udp' Which protocol to use when logging remotely. Defaults to 'tcp'.
+ 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
- server STRING Rsyslog server to log to. Will be used in the client configuration file.
+ 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.
+ remote_servers Array of hashes Array of hashes with remote servers. See documentation above. Defaults to false.
+ ssl_ca STRING SSL CA file location. Defaults to undef.
log_templates HASH Provides a has defining custom logging templates using the `$template` configuration parameter.
actionfiletemplate STRING If set this defines the `ActionFileDefaultTemplate` which sets the default logging format for remote and local logging.
@@ -177,3 +190,13 @@ directory. i.e. www01 www02 and www02 would all log to the www directory. To log each host to a seperate directory, set the custom_config parameter to
'rsyslog/server-hostname.conf.erb'
+
+If any of the following parameters are set to `false`, then the module will not
+manage the respective package:
+
+ gnutls_package_name
+ relp_package_name
+ rsyslog_package_name
+
+This can be used when using the adiscon PPA repository, that has merged rsyslog-gnutls
+with the main rsyslog package.
diff --git a/lib/facter/rsyslog_version.rb b/lib/facter/rsyslog_version.rb new file mode 100644 index 0000000..de8531e --- /dev/null +++ b/lib/facter/rsyslog_version.rb @@ -0,0 +1,38 @@ +# Fact: :syslog_package +# +# Purpose: retrieve installed rsyslog version +# + +Facter.add(:rsyslog_version) do + setcode do + osfamily = Facter.value('osfamily') + case osfamily + when "Debian" + command='/usr/bin/dpkg-query -f \'${Status};${Version};\' -W rsyslog 2>/dev/null' + version = Facter::Util::Resolution.exec(command) + if version =~ /.*install ok installed;([^;]+);.*/ + $1 + else + nil + end + when "RedHat", "Suse" + command='rpm -qa --qf "%{VERSION}" "rsyslog"' + version = Facter::Util::Resolution.exec(command) + if version =~ /^(.+)$/ + $1 + else + nil + end + when "FreeBSD" + command='pkg query %v rsyslog' + version = Facter::Util::Resolution.exec(command) + if version =~ /^(.+)$/ + $1 + else + nil + end + else + nil + end + end +end diff --git a/manifests/client.pp b/manifests/client.pp index f8a2120..193aa33 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -1,63 +1,64 @@ -# == Class: rsyslog::client
-#
-# Full description of class role here.
-#
-# === Parameters
-#
-# [*sample_parameter*]
-# [*spool_size*]
-# [*log_local*]
-# [*log_auth_local*]
-# [*custom_config*]
-# [*custom_params*]
-# [*log_remote*]
-# [*server*]
-# [*remote_type*]
-# [*port*]
-# [*remote_servers*]
-# [*ssl_ca*]
-# [*log_templates*]
-# [*actionfiletemplate*]
-#
-# === Variables
-#
-# === Examples
-#
-# class { 'rsyslog::client': }
-#
-class rsyslog::client (
- $log_remote = true,
- $spool_size = '1g',
- $remote_type = 'tcp',
- $log_local = false,
- $log_auth_local = false,
- $custom_config = undef,
- $custom_params = undef,
- $server = 'log',
- $port = '514',
- $remote_servers = false,
- $ssl_ca = undef,
- $log_templates = false,
- $actionfiletemplate = false
-) inherits rsyslog {
-
- if $custom_config {
- $content_real = template($custom_config)
- } else {
- $content_real = template("${module_name}/client.conf.erb")
- }
-
- rsyslog::snippet { $rsyslog::client_conf:
- ensure => present,
- content => $content_real,
- }
-
- if $rsyslog::ssl and $ssl_ca == undef {
- fail('You need to define $ssl_ca in order to use SSL.')
- }
-
- if $rsyslog::ssl and $remote_type != 'tcp' {
- fail('You need to enable tcp in order to use SSL.')
- }
-
-}
+# == Class: rsyslog::client +# +# Full description of class role here. +# +# === Parameters +# +# [*log_remote*] +# [*spool_size*] +# [*remote_type*] +# [*remote_forward_format*] +# [*log_local*] +# [*log_auth_local*] +# [*custom_config*] +# [*custom_params*] +# [*server*] +# [*port*] +# [*remote_servers*] +# [*ssl_ca*] +# [*log_templates*] +# [*actionfiletemplate*] +# +# === Variables +# +# === Examples +# +# class { 'rsyslog::client': } +# +class rsyslog::client ( + $log_remote = true, + $spool_size = '1g', + $remote_type = 'tcp', + $remote_forward_format = 'RSYSLOG_ForwardFormat', + $log_local = false, + $log_auth_local = false, + $custom_config = undef, + $custom_params = undef, + $server = 'log', + $port = '514', + $remote_servers = false, + $ssl_ca = undef, + $log_templates = false, + $actionfiletemplate = false +) inherits rsyslog { + + if $custom_config { + $content_real = template($custom_config) + } else { + $content_real = template("${module_name}/client.conf.erb") + } + + rsyslog::snippet { $rsyslog::client_conf: + ensure => present, + content => $content_real, + } + + if $rsyslog::ssl and $ssl_ca == undef { + fail('You need to define $ssl_ca in order to use SSL.') + } + + if $rsyslog::ssl and $remote_type != 'tcp' { + fail('You need to enable tcp in order to use SSL.') + } + +} diff --git a/manifests/params.pp b/manifests/params.pp index f4cd74b..d301458 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -120,11 +120,12 @@ class rsyslog::params { $service_hasrestart = true $service_hasstatus = true } - 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' @@ -133,13 +134,18 @@ 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', + ] } freebsd: { $rsyslog_package_name = 'sysutils/rsyslog5' diff --git a/spec/classes/rsyslog_client_spec.rb b/spec/classes/rsyslog_client_spec.rb index b05b416..82865db 100644 --- a/spec/classes/rsyslog_client_spec.rb +++ b/spec/classes/rsyslog_client_spec.rb @@ -1,52 +1,145 @@ require 'spec_helper' describe 'rsyslog::client', :type => :class do - context "osfamily = RedHat" do - let :facts do + + context "Rsyslog version >= 8" do + let(:default_facts) do { - :osfamily => 'RedHat', - :operatingsystem => 'RedHat', - :operatingsystemmajrelease => 6, + :rsyslog_version => '8.1.2' } end - context "default usage (osfamily = RedHat)" do - let(:title) { 'rsyslog-client-basic' } + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-client-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/client.conf') + end + end + end + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-client-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/client.conf') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-client-basic' } - it 'should compile' do - should contain_file('/etc/rsyslog.d/client.conf') + it 'should compile' do + should contain_file('/etc/syslog.d/client.conf') + end end end end - context "osfamily = Debian" do - let :facts do + context "Rsyslog version =< 8" do + let(:default_facts) do { - :osfamily => 'Debian', + :rsyslog_version => '7.1.2' } end - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-client-basic' } + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end - it 'should compile' do - should contain_file('/etc/rsyslog.d/client.conf') + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-client-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/client.conf') + end + end + end + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-client-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/client.conf') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-client-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.d/client.conf') + end end end end - context "osfamily = FreeBSD" do - let :facts do + context "Rsyslog version = nil" do + let(:default_facts) do { - :osfamily => 'freebsd', + :rsyslog_version => nil } end - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-client-basic' } + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-client-basic' } - it 'should compile' do - should contain_file('/etc/syslog.d/client.conf') + it 'should compile' do + should contain_file('/etc/rsyslog.d/client.conf') + end end end end diff --git a/spec/classes/rsyslog_database_spec.rb b/spec/classes/rsyslog_database_spec.rb index 83bb09a..0421135 100644 --- a/spec/classes/rsyslog_database_spec.rb +++ b/spec/classes/rsyslog_database_spec.rb @@ -1,146 +1,307 @@ require 'spec_helper' describe 'rsyslog::database', :type => :class do - context "osfamily = RedHat" do - let :facts do + + context "Rsyslog version >= 8" do + let(:default_facts) do { - :osfamily => 'RedHat', - :operatingsystem => 'RedHat', - :operatingsystemmajrelease => 6, + :rsyslog_version => '8.1.2' } end - context "default usage mysql (osfamily = RedHat)" do - let(:title) { 'rsyslog-database-mysql' } + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage mysql (osfamily = RedHat)" do + let(:title) { 'rsyslog-database-mysql' } - let (:params) { - { - 'backend' => 'mysql', - 'server' => 'localhost', - 'database' => 'rsyslog', - 'username' => 'us3rname', - 'password' => 'passw0rd', + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } } - } - it 'should compile' do - should contain_package('rsyslog-mysql') - should contain_file('/etc/rsyslog.d/mysql.conf') + it 'should compile' do + should contain_package('rsyslog-mysql') + should contain_file('/etc/rsyslog.d/mysql.conf') + end + end + + context "default usage pgsql (osfamily = RedHat)" do + let(:title) { 'rsyslog-database-pgsql' } + + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('rsyslog-pgsql') + should contain_file('/etc/rsyslog.d/pgsql.conf') + end end end - context "default usage pgsql (osfamily = RedHat)" do - let(:title) { 'rsyslog-database-pgsql' } - let (:params) { - { - 'backend' => 'pgsql', - 'server' => 'localhost', - 'database' => 'rsyslog', - 'username' => 'us3rname', - 'password' => 'passw0rd', + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage mysql (osfamily = Debian)" do + let(:title) { 'rsyslog-database-mysql' } + + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('rsyslog-mysql') + should contain_file('/etc/rsyslog.d/mysql.conf') + end + end + + context "default usage pgsql (osfamily = Debian)" do + let(:title) { 'rsyslog-database-pgsql' } + + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } } - } - it 'should compile' do - should contain_package('rsyslog-pgsql') - should contain_file('/etc/rsyslog.d/pgsql.conf') + it 'should compile' do + should contain_package('rsyslog-pgsql') + should contain_file('/etc/rsyslog.d/pgsql.conf') + end end end - end - context "osfamily = Debian" do - let :facts do + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage mysql (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-database-mysql' } + + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('sysutils/rsyslog5-mysql') + should contain_file('/etc/syslog.d/mysql.conf') + end + end + + context "default usage pgsql (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-database-pgsql' } + + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('sysutils/rsyslog5-pgsql') + should contain_file('/etc/syslog.d/pgsql.conf') + end + end + end + end + + context "Rsyslog version =< 8" do + let(:default_facts) do { - :osfamily => 'Debian', + :rsyslog_version => '7.1.2' } end - context "default usage mysql (osfamily = Debian)" do - let(:title) { 'rsyslog-database-mysql' } + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage mysql (osfamily = RedHat)" do + let(:title) { 'rsyslog-database-mysql' } - let (:params) { - { - 'backend' => 'mysql', - 'server' => 'localhost', - 'database' => 'rsyslog', - 'username' => 'us3rname', - 'password' => 'passw0rd', + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } } - } - it 'should compile' do - should contain_package('rsyslog-mysql') - should contain_file('/etc/rsyslog.d/mysql.conf') + it 'should compile' do + should contain_package('rsyslog-mysql') + should contain_file('/etc/rsyslog.d/mysql.conf') + end end - end - context "default usage pgsql (osfamily = Debian)" do - let(:title) { 'rsyslog-database-pgsql' } + context "default usage pgsql (osfamily = RedHat)" do + let(:title) { 'rsyslog-database-pgsql' } - let (:params) { - { - 'backend' => 'pgsql', - 'server' => 'localhost', - 'database' => 'rsyslog', - 'username' => 'us3rname', - 'password' => 'passw0rd', + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } } - } - it 'should compile' do - should contain_package('rsyslog-pgsql') - should contain_file('/etc/rsyslog.d/pgsql.conf') + it 'should compile' do + should contain_package('rsyslog-pgsql') + should contain_file('/etc/rsyslog.d/pgsql.conf') + end end end - end - context "osfamily = FreeBSD" do - let :facts do - { - :osfamily => 'freebsd', - } - end + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end - context "default usage mysql (osfamily = FreeBSD)" do - let(:title) { 'rsyslog-database-mysql' } + context "default usage mysql (osfamily = Debian)" do + let(:title) { 'rsyslog-database-mysql' } - let (:params) { - { - 'backend' => 'mysql', - 'server' => 'localhost', - 'database' => 'rsyslog', - 'username' => 'us3rname', - 'password' => 'passw0rd', + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } } - } - it 'should compile' do - should contain_package('sysutils/rsyslog5-mysql') - should contain_file('/etc/syslog.d/mysql.conf') + it 'should compile' do + should contain_package('rsyslog-mysql') + should contain_file('/etc/rsyslog.d/mysql.conf') + end + end + + context "default usage pgsql (osfamily = Debian)" do + let(:title) { 'rsyslog-database-pgsql' } + + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('rsyslog-pgsql') + should contain_file('/etc/rsyslog.d/pgsql.conf') + end end end - context "default usage pgsql (osfamily = FreeBSD)" do - let(:title) { 'rsyslog-database-pgsql' } - let (:params) { - { - 'backend' => 'pgsql', - 'server' => 'localhost', - 'database' => 'rsyslog', - 'username' => 'us3rname', - 'password' => 'passw0rd', + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage mysql (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-database-mysql' } + + let (:params) { + { + 'backend' => 'mysql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } + } + + it 'should compile' do + should contain_package('sysutils/rsyslog5-mysql') + should contain_file('/etc/syslog.d/mysql.conf') + end + end + + context "default usage pgsql (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-database-pgsql' } + + let (:params) { + { + 'backend' => 'pgsql', + 'server' => 'localhost', + 'database' => 'rsyslog', + 'username' => 'us3rname', + 'password' => 'passw0rd', + } } - } - it 'should compile' do - should contain_package('sysutils/rsyslog5-pgsql') - should contain_file('/etc/syslog.d/pgsql.conf') + it 'should compile' do + should contain_package('sysutils/rsyslog5-pgsql') + should contain_file('/etc/syslog.d/pgsql.conf') + end end end end diff --git a/spec/classes/rsyslog_server_spec.rb b/spec/classes/rsyslog_server_spec.rb index cbaf81b..8f57656 100644 --- a/spec/classes/rsyslog_server_spec.rb +++ b/spec/classes/rsyslog_server_spec.rb @@ -2,85 +2,181 @@ require 'spec_helper' describe 'rsyslog::server', :type => :class do - ['RedHat', 'Debian'].each do |osfamily| - context "osfamily = #{osfamily}" do + context "Rsyslog version >= 8" do + let(:default_facts) do + { + :rsyslog_version => '8.1.2' + } + end + + ['RedHat', 'Debian'].each do |osfamily| + context "osfamily = #{osfamily}" do + let :facts do + default_facts.merge!({ + :osfamily => osfamily, + :operatingsystem => osfamily, + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = #{osfamily})" do + let(:title) { 'rsyslog-server-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) + should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + end + end + + context "enable_onefile (osfamily = #{osfamily})" do + let(:title) { 'rsyslog-server-onefile' } + let(:params) { {'enable_onefile' => 'true'} } + + it 'should compile' do + should_not contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) + should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + end + end + + context "hostname_template (osfamily = #{osfamily})" do + let(:title) { 'rsyslog-server-onefile' } + let(:params) { {'custom_config' => 'rsyslog/server-hostname.conf.erb'} } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/server.conf').with_content(/%hostname%\/auth.log/) + should contain_file('/etc/rsyslog.d/server.conf').with_content(/%hostname%\/messages/) + end + end + + end + end + + + context "osfamily = FreeBSD" do let :facts do - { - :osfamily => osfamily, - :operatingsystem => osfamily, - :operatingsystemmajrelease => 6, - } + default_facts.merge!({ + :osfamily => 'freebsd', + }) end - context "default usage (osfamily = #{osfamily})" do + context "default usage (osfamily = FreeBSD)" do let(:title) { 'rsyslog-server-basic' } - + it 'should compile' do - should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) - should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) + should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) end end - context "enable_onefile (osfamily = #{osfamily})" do + context "enable_onefile (osfamily = FreeBSD)" do let(:title) { 'rsyslog-server-onefile' } let(:params) { {'enable_onefile' => 'true'} } - + it 'should compile' do - should_not contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) - should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + should_not contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) + should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) end end - context "hostname_template (osfamily = #{osfamily})" do + context "hostname_template (osfamily = FreeBSD)" do let(:title) { 'rsyslog-server-onefile' } let(:params) { {'custom_config' => 'rsyslog/server-hostname.conf.erb'} } - + it 'should compile' do - should contain_file('/etc/rsyslog.d/server.conf').with_content(/%hostname%\/auth.log/) - should contain_file('/etc/rsyslog.d/server.conf').with_content(/%hostname%\/messages/) + should contain_file('/etc/syslog.d/server.conf').with_content(/%hostname%\/auth.log/) + should contain_file('/etc/syslog.d/server.conf').with_content(/%hostname%\/messages/) end end end end - - context "osfamily = FreeBSD" do - let :facts do + context "Rsyslog version =< 8" do + let(:default_facts) do { - :osfamily => 'freebsd', + :rsyslog_version => '7.1.2' } end - context "default usage (osfamily = FreeBSD)" do - let(:title) { 'rsyslog-server-basic' } + ['RedHat', 'Debian'].each do |osfamily| + context "osfamily = #{osfamily}" do + let :facts do + default_facts.merge!({ + :osfamily => osfamily, + :operatingsystem => osfamily, + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = #{osfamily})" do + let(:title) { 'rsyslog-server-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) + should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + end + end + + context "enable_onefile (osfamily = #{osfamily})" do + let(:title) { 'rsyslog-server-onefile' } + let(:params) { {'enable_onefile' => 'true'} } + + it 'should compile' do + should_not contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) + should contain_file('/etc/rsyslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + end + end + + context "hostname_template (osfamily = #{osfamily})" do + let(:title) { 'rsyslog-server-onefile' } + let(:params) { {'custom_config' => 'rsyslog/server-hostname.conf.erb'} } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/server.conf').with_content(/%hostname%\/auth.log/) + should contain_file('/etc/rsyslog.d/server.conf').with_content(/%hostname%\/messages/) + end + end - it 'should compile' do - should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) - should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) end end - context "enable_onefile (osfamily = FreeBSD)" do - let(:title) { 'rsyslog-server-onefile' } - let(:params) { {'enable_onefile' => 'true'} } + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-server-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) + should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + end + end + + context "enable_onefile (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-server-onefile' } + let(:params) { {'enable_onefile' => 'true'} } - it 'should compile' do - should_not contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) - should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + it 'should compile' do + should_not contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/auth.log/) + should contain_file('/etc/syslog.d/server.conf').with_content(/\(\[A-Za-z-\]\*\)--end%\/messages/) + end end - end - context "hostname_template (osfamily = FreeBSD)" do - let(:title) { 'rsyslog-server-onefile' } - let(:params) { {'custom_config' => 'rsyslog/server-hostname.conf.erb'} } + context "hostname_template (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-server-onefile' } + let(:params) { {'custom_config' => 'rsyslog/server-hostname.conf.erb'} } - it 'should compile' do - should contain_file('/etc/syslog.d/server.conf').with_content(/%hostname%\/auth.log/) - should contain_file('/etc/syslog.d/server.conf').with_content(/%hostname%\/messages/) + it 'should compile' do + should contain_file('/etc/syslog.d/server.conf').with_content(/%hostname%\/auth.log/) + should contain_file('/etc/syslog.d/server.conf').with_content(/%hostname%\/messages/) + end end - end + end end - end # describe 'rsyslog::server' diff --git a/spec/classes/rsyslog_spec.rb b/spec/classes/rsyslog_spec.rb index a4747bc..344d717 100644 --- a/spec/classes/rsyslog_spec.rb +++ b/spec/classes/rsyslog_spec.rb @@ -1,214 +1,468 @@ require 'spec_helper' describe 'rsyslog', :type => :class do - context "osfamily = RedHat" do - let :facts do + + context "Rsyslog version >= 8" do + let(:default_facts) do { - :osfamily => 'RedHat', - :operatingsystem => 'RedHat', - :operatingsystemmajrelease => 6, + :rsyslog_version => '8.1.2' } end - context "default usage (osfamily = RedHat)" do - let(:title) { 'rsyslog-basic' } - - it 'should compile' do - should contain_class('rsyslog::install') - should contain_class('rsyslog::config') - should contain_class('rsyslog::service') + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end end end - end - - context "osfamily = Debian" do - let :facts do - { - :osfamily => 'Debian', - } + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end + end end - - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-basic' } - - it 'should compile' do - should contain_class('rsyslog::install') - should contain_class('rsyslog::config') - should contain_class('rsyslog::service') + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end end end - end - - context "osfamily = FreeBSD" do - let :facts do - { - :osfamily => 'freebsd', - } + + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.conf') + should contain_file('/etc/rsyslog.d/') + end + end end - - context "default usage (osfamily = FreeBSD)" do - let(:title) { 'rsyslog-basic' } - - it 'should compile' do - should contain_class('rsyslog::install') - should contain_class('rsyslog::config') - should contain_class('rsyslog::service') + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.conf') + should contain_file('/etc/rsyslog.d/') + end end end - end - - context "osfamily = RedHat" do - let :facts do - { - :osfamily => 'RedHat', - :operatingsystem => 'RedHat', - :operatingsystemmajrelease => 6, - } + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.conf') + should contain_file('/etc/syslog.d/') + end + end end - - context "default usage (osfamily = RedHat)" do - let(:title) { 'rsyslog-basic' } - - it 'should compile' do - should contain_file('/etc/rsyslog.conf') - should contain_file('/etc/rsyslog.d/') + + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('rsyslog') + should contain_package('rsyslog-relp') + end end end - end - - context "osfamily = Debian" do - let :facts do - { - :osfamily => 'Debian', - } + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('rsyslog') + should contain_package('rsyslog-relp') + end + end end - - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-basic' } - - it 'should compile' do - should contain_file('/etc/rsyslog.conf') - should contain_file('/etc/rsyslog.d/') + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('sysutils/rsyslog5') + should contain_package('sysutils/rsyslog5-relp') + end end end - end - - context "osfamily = FreeBSD" do - let :facts do - { - :osfamily => 'freebsd', - } + + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('rsyslog') + end + end end - - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-basic' } - - it 'should compile' do - should contain_file('/etc/syslog.conf') - should contain_file('/etc/syslog.d/') + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('rsyslog') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('syslogd') + end end end end - context "osfamily = RedHat" do - let :facts do + context "Rsyslog version =< 8" do + let(:default_facts) do { - :osfamily => 'RedHat', - :operatingsystem => 'RedHat', - :operatingsystemmajrelease => 6, + :rsyslog_version => '7.1.2' } end - context "default usage (osfamily = RedHat)" do - let(:title) { 'rsyslog-install-basic' } - - it 'should compile' do - should contain_package('rsyslog') - should contain_package('rsyslog-relp') + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end end end - end - - context "osfamily = Debian" do - let :facts do - { - :osfamily => 'Debian', - } + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end + end end - - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-install-basic' } - - it 'should compile' do - should contain_package('rsyslog') - should contain_package('rsyslog-relp') + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = FreeBSD)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_class('rsyslog::install') + should contain_class('rsyslog::config') + should contain_class('rsyslog::service') + end end end - end - - context "osfamily = FreeBSD" do - let :facts do - { - :osfamily => 'freebsd', - } + + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.conf') + should contain_file('/etc/rsyslog.d/') + end + end end - - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-install-basic' } - - it 'should compile' do - should contain_package('sysutils/rsyslog5') - should contain_package('sysutils/rsyslog5-relp') + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.conf') + should contain_file('/etc/rsyslog.d/') + end end end - end - - context "osfamily = RedHat" do - let :facts do - { - :osfamily => 'RedHat', - :operatingsystem => 'RedHat', - :operatingsystemmajrelease => 6, - } + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.conf') + should contain_file('/etc/syslog.d/') + end + end end - - context "default usage (osfamily = RedHat)" do - let(:title) { 'rsyslog-service-basic' } - - it 'should compile' do - should contain_service('rsyslog') + + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('rsyslog') + should contain_package('rsyslog-relp') + end end end - end - - context "osfamily = Debian" do - let :facts do - { - :osfamily => 'Debian', - } + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('rsyslog') + should contain_package('rsyslog-relp') + end + end end - - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-service-basic' } - - it 'should compile' do - should contain_service('rsyslog') + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-install-basic' } + + it 'should compile' do + should contain_package('sysutils/rsyslog5') + should contain_package('sysutils/rsyslog5-relp') + end + end + end + + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('rsyslog') + end + end + end + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('rsyslog') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-service-basic' } + + it 'should compile' do + should contain_service('syslogd') + end end end end - context "osfamily = FreeBSD" do - let :facts do + context "Rsyslog version >= 8" do + let(:default_facts) do { - :osfamily => 'freebsd', + :rsyslog_version => nil } end - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-service-basic' } + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end - it 'should compile' do - should contain_service('syslogd') + context "default usage (osfamily = RedHat)" do + it 'should compile' do + should contain_file('/etc/rsyslog.conf') + should contain_file('/etc/rsyslog.d/') + end end end end diff --git a/spec/defines/rsyslog_imfile_spec.rb b/spec/defines/rsyslog_imfile_spec.rb index b2cfcf9..1c505eb 100644 --- a/spec/defines/rsyslog_imfile_spec.rb +++ b/spec/defines/rsyslog_imfile_spec.rb @@ -1,77 +1,169 @@ require 'spec_helper' describe 'rsyslog::imfile', :type => :define do - context "osfamily = RedHat" do - let :facts do + + context "Rsyslog version >= 8" do + let(:default_facts) do { - :osfamily => 'RedHat', - :operatingsystem => 'RedHat', - :operatingsystemmajrelease => 6, + :rsyslog_version => '8.1.2' } end - let (:params) { - { - 'file_name' => 'mylogfile', - 'file_tag' => 'mytag', - 'file_facility' => 'myfacility', + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } } - } - context "default usage (osfamily = RedHat)" do - let(:title) { 'rsyslog-imfile-basic' } + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-imfile-basic' } - it 'should compile' do - should contain_file('/etc/rsyslog.d/rsyslog-imfile-basic.conf') + it 'should compile' do + should contain_file('/etc/rsyslog.d/rsyslog-imfile-basic.conf') + end end end - end - context "osfamily = Debian" do - let :facts do - { - :osfamily => 'Debian', + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } } + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-imfile-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/rsyslog-imfile-basic.conf') + end + end end - let (:params) { - { - 'file_name' => 'mylogfile', - 'file_tag' => 'mytag', - 'file_facility' => 'myfacility', + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } } - } - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-imfile-basic' } + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-imfile-basic' } - it 'should compile' do - should contain_file('/etc/rsyslog.d/rsyslog-imfile-basic.conf') + it 'should compile' do + should contain_file('/etc/syslog.d/rsyslog-imfile-basic.conf') + end end end end - context "osfamily = FreeBSD" do - let :facts do + context "Rsyslog version =< 8" do + let(:default_facts) do { - :osfamily => 'freebsd', + :rsyslog_version => '7.1.2' } end - let (:params) { - { - 'file_name' => 'mylogfile', - 'file_tag' => 'mytag', - 'file_facility' => 'myfacility', + context "osfamily = RedHat" do + let :facts do + default_facts.merge!({ + :osfamily => 'RedHat', + :operatingsystem => 'RedHat', + :operatingsystemmajrelease => 6, + }) + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } } - } - context "default usage (osfamily = Debian)" do - let(:title) { 'rsyslog-imfile-basic' } + context "default usage (osfamily = RedHat)" do + let(:title) { 'rsyslog-imfile-basic' } - it 'should compile' do - should contain_file('/etc/syslog.d/rsyslog-imfile-basic.conf') + it 'should compile' do + should contain_file('/etc/rsyslog.d/rsyslog-imfile-basic.conf') + end + end + end + + context "osfamily = Debian" do + let :facts do + default_facts.merge!({ + :osfamily => 'Debian', + }) + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } + } + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-imfile-basic' } + + it 'should compile' do + should contain_file('/etc/rsyslog.d/rsyslog-imfile-basic.conf') + end + end + end + + context "osfamily = FreeBSD" do + let :facts do + default_facts.merge!({ + :osfamily => 'freebsd', + }) + end + + let (:params) { + { + 'file_name' => 'mylogfile', + 'file_tag' => 'mytag', + 'file_facility' => 'myfacility', + } + } + + context "default usage (osfamily = Debian)" do + let(:title) { 'rsyslog-imfile-basic' } + + it 'should compile' do + should contain_file('/etc/syslog.d/rsyslog-imfile-basic.conf') + end end end end + end diff --git a/spec/defines/rsyslog_snippet_spec.rb b/spec/defines/rsyslog_snippet_spec.rb index e04ad6a..6cc6883 100644 --- a/spec/defines/rsyslog_snippet_spec.rb +++ b/spec/defines/rsyslog_snippet_spec.rb @@ -1,71 +1,157 @@ require 'spec_helper'
describe 'rsyslog::snippet', :type => :define do
- context "osfamily = RedHat" do
- let :facts do
+
+ context "Rsyslog version >= 8" do
+ let(:default_facts) do
{
- :osfamily => 'RedHat',
- :operatingsystem => 'Redhat',
- :operatingsystemmajrelease => 6,
+ :rsyslog_version => '8.1.2'
}
end
- let (:params) {
- {
- 'content' => 'Random Content',
+ context "osfamily = RedHat" do
+ let :facts do
+ default_facts.merge!({
+ :osfamily => 'RedHat',
+ :operatingsystem => 'Redhat',
+ :operatingsystemmajrelease => 6,
+ })
+ end
+
+ let (:params) {
+ {
+ 'content' => 'Random Content',
+ }
}
- }
- context "default usage (osfamily = RedHat)" do
- let(:title) { 'rsyslog-snippet-basic' }
+ context "default usage (osfamily = RedHat)" do
+ let(:title) { 'rsyslog-snippet-basic' }
- it 'should compile' do
- should contain_file('/etc/rsyslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ it 'should compile' do
+ should contain_file('/etc/rsyslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ end
end
end
- end
- context "osfamily = Debian" do
- let :facts do
- {
- :osfamily => 'Debian',
+ context "osfamily = Debian" do
+ let :facts do
+ default_facts.merge!({
+ :osfamily => 'Debian',
+ })
+ end
+
+ let (:params) {
+ {
+ 'content' => 'Random Content',
+ }
}
+
+ context "default usage (osfamily = Debian)" do
+ let(:title) { 'rsyslog-snippet-basic' }
+
+ it 'should compile' do
+ should contain_file('/etc/rsyslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ end
+ end
end
- let (:params) {
- {
- 'content' => 'Random Content',
+ context "osfamily = FreeBSD" do
+ let :facts do
+ default_facts.merge!({
+ :osfamily => 'freebsd',
+ })
+ end
+
+ let (:params) {
+ {
+ 'content' => 'Random Content',
+ }
}
- }
- context "default usage (osfamily = Debian)" do
- let(:title) { 'rsyslog-snippet-basic' }
+ context "default usage (osfamily = Debian)" do
+ let(:title) { 'rsyslog-snippet-basic' }
- it 'should compile' do
- should contain_file('/etc/rsyslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ it 'should compile' do
+ should contain_file('/etc/syslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ end
end
end
end
- context "osfamily = FreeBSD" do
- let :facts do
+ context "Rsyslog version =< 8" do
+ let(:default_facts) do
{
- :osfamily => 'freebsd',
+ :rsyslog_version => '7.1.2'
}
end
- let (:params) {
- {
- 'content' => 'Random Content',
+ context "osfamily = RedHat" do
+ let :facts do
+ default_facts.merge!({
+ :osfamily => 'RedHat',
+ :operatingsystem => 'Redhat',
+ :operatingsystemmajrelease => 6,
+ })
+ end
+
+ let (:params) {
+ {
+ 'content' => 'Random Content',
+ }
}
- }
- context "default usage (osfamily = Debian)" do
- let(:title) { 'rsyslog-snippet-basic' }
+ context "default usage (osfamily = RedHat)" do
+ let(:title) { 'rsyslog-snippet-basic' }
- it 'should compile' do
- should contain_file('/etc/syslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ it 'should compile' do
+ should contain_file('/etc/rsyslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ end
+ end
+ end
+
+ context "osfamily = Debian" do
+ let :facts do
+ default_facts.merge!({
+ :osfamily => 'Debian',
+ })
+ end
+
+ let (:params) {
+ {
+ 'content' => 'Random Content',
+ }
+ }
+
+ context "default usage (osfamily = Debian)" do
+ let(:title) { 'rsyslog-snippet-basic' }
+
+ it 'should compile' do
+ should contain_file('/etc/rsyslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ end
+ end
+ end
+
+ context "osfamily = FreeBSD" do
+ let :facts do
+ default_facts.merge!({
+ :osfamily => 'freebsd',
+ })
+ end
+
+ let (:params) {
+ {
+ 'content' => 'Random Content',
+ }
+ }
+
+ context "default usage (osfamily = Debian)" do
+ let(:title) { 'rsyslog-snippet-basic' }
+
+ it 'should compile' do
+ should contain_file('/etc/syslog.d/rsyslog-snippet-basic.conf').with_content("# This file is managed by Puppet, changes may be overwritten\nRandom Content\n")
+ end
end
end
end
+
end
diff --git a/templates/client.conf.erb b/templates/client.conf.erb index c10512c..c05ae79 100644 --- a/templates/client.conf.erb +++ b/templates/client.conf.erb @@ -72,9 +72,9 @@ $ActionSendStreamDriverAuthMode anon # Log to remote syslog server using <%= scope.lookupvar('rsyslog::client::remote_type') %> <% if scope.lookupvar('rsyslog::client::remote_type') == 'tcp' -%> -*.* @@<%= scope.lookupvar('rsyslog::client::server') -%>:<%= scope.lookupvar('rsyslog::client::port') -%>;RSYSLOG_ForwardFormat +*.* @@<%= scope.lookupvar('rsyslog::client::server') -%>:<%= scope.lookupvar('rsyslog::client::port') -%>;<%= scope.lookupvar('remote_forward_format') -%> <% else -%> -*.* @<%= scope.lookupvar('rsyslog::client::server') -%>:<%= scope.lookupvar('rsyslog::client::port') -%>;RSYSLOG_ForwardFormat +*.* @<%= scope.lookupvar('rsyslog::client::server') -%>:<%= scope.lookupvar('rsyslog::client::port') -%>;<%= scope.lookupvar('remote_forward_format') -%> <% end -%> <% end -%> <% if scope.lookupvar('rsyslog::client::log_auth_local') or scope.lookupvar('rsyslog::client::log_local') -%> @@ -165,7 +165,11 @@ mail.* -/var/log/maillog cron.* /var/log/cron # Everybody gets emergency messages -*.emerg * +<% if @rsyslog_version and @rsyslog_version.split('.')[0].to_i >= 8 -%> +*.emerg :omusrmsg:* +<% else -%> +*.emerg * +<% end -%> # Save news errors of level crit and higher in a special file. uucp,news.crit -/var/log/spooler diff --git a/templates/rsyslog.conf.erb b/templates/rsyslog.conf.erb index 097df0c..1e5e1f6 100644 --- a/templates/rsyslog.conf.erb +++ b/templates/rsyslog.conf.erb @@ -35,4 +35,8 @@ $IncludeConfig <%= scope.lookupvar('rsyslog::rsyslog_d') -%>*.conf # # Emergencies are sent to everybody logged in. # +<% if @rsyslog_version and @rsyslog_version.split('.')[0].to_i >= 8 -%> +*.emerg :omusrmsg:* +<% else -%> *.emerg * +<% end -%> |