X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fferm%2Fmanifests%2Finit.pp;h=23dfc2a79c31e683457b9085da415f7fadf93fd4;hb=b529b139a60ea8355089511737c8264185d8d074;hp=048ce4e0db4857d8b44ba52efb4788e00174772c;hpb=41d612b15d3f188a682fc7fb3cd3ea2d5d70ad9e;p=mirror%2Fdsa-puppet.git diff --git a/modules/ferm/manifests/init.pp b/modules/ferm/manifests/init.pp index 048ce4e0d..23dfc2a79 100644 --- a/modules/ferm/manifests/init.pp +++ b/modules/ferm/manifests/init.pp @@ -1,14 +1,33 @@ +# = Class: ferm +# +# This class installs ferm and sets up rules +# +# == Sample Usage: +# +# include ferm +# class ferm { # realize (i.e. enable) all @ferm::rule virtual resources Ferm::Rule <| |> + Ferm::Conf <| |> File { mode => '0400' } package { 'ferm': ensure => installed } - package { 'ulogd': - ensure => installed + if (versioncmp($::lsbmajdistrelease, '8') >= 0) { + package { 'ulogd2': + ensure => installed + } + package { 'ulogd': + # Remove instead of purge ulogd because it deletes log files on purge. + ensure => absent + } + } else { + package { 'ulogd': + ensure => installed + } } service { 'ferm': @@ -16,17 +35,17 @@ class ferm { status => '/bin/true', } - $munin_ips = split(regsubst($v4ips, '([^,]+)', 'ip_\1', 'G'), ',') + $munin_ips = split(regsubst($::v4ips, '([^,]+)', 'ip_\1', 'G'), ',') munin::check { $munin_ips: script => 'ip_', } if $v6ips { - $munin6_ips = split(regsubst($v6ips, '([^,]+)', 'ip_\1', 'G'), ',') + $munin6_ips = split(regsubst($::v6ips, '([^,]+)', 'ip_\1', 'G'), ',') munin::ipv6check { $munin6_ips: } } # get rid of old stuff - $munin6_ip6s = split(regsubst($v6ips, '([^,]+)', 'ip6_\1', 'G'), ',') + $munin6_ip6s = split(regsubst($::v6ips, '([^,]+)', 'ip6_\1', 'G'), ',') munin::check { $munin6_ip6s: ensure => absent } file { '/etc/ferm': @@ -46,6 +65,10 @@ class ferm { file { '/etc/ferm/conf.d': ensure => directory, mode => '0555', + purge => true, + force => true, + recurse => true, + source => 'puppet:///files/empty/', } file { '/etc/default/ferm': source => 'puppet:///modules/ferm/ferm.default', @@ -54,7 +77,7 @@ class ferm { mode => '0444', } file { '/etc/ferm/ferm.conf': - source => 'puppet:///modules/ferm/ferm.conf', + content => template('ferm/ferm.conf.erb'), notify => Service['ferm'], } file { '/etc/ferm/conf.d/me.conf': @@ -69,16 +92,30 @@ class ferm { content => template('ferm/interfaces.conf.erb'), notify => Service['ferm'], } - file { '/etc/logrotate.d/ulogd': - source => 'puppet:///modules/ferm/logrotate-ulogd', - mode => '0444', - require => Package['debian.org'], - } - - if getfromhash($site::nodeinfo, 'buildd') { - file { '/etc/ferm/conf.d/load_ftp_conntrack.conf': - source => 'puppet:///modules/ferm/conntrack_ftp.conf', - notify => Service['ferm'], + if (versioncmp($::lsbmajdistrelease, '8') >= 0) { + augeas { 'logrotate_ulogd2': + context => '/files/etc/logrotate.d/ulogd2', + changes => [ + 'set rule/schedule daily', + 'set rule/delaycompress delaycompress', + 'set rule/rotate 10', + 'set rule/ifempty notifempty', + ], + } + file { '/etc/logrotate.d/ulogd': + ensure => absent, + } + file { '/etc/logrotate.d/ulogd.dpkg-bak': + ensure => absent, + } + file { '/etc/logrotate.d/ulogd.dpkg-dist': + ensure => absent, + } + } else { + file { '/etc/logrotate.d/ulogd': + source => 'puppet:///modules/ferm/logrotate-ulogd', + mode => '0444', + require => Package['debian.org'], } }