]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/ferm/manifests/init.pp
variable assignment does not clone string...
[dsa-puppet.git] / modules / ferm / manifests / init.pp
index 62ad57376daea0c62ec60600c8a67e2f89127fbf..ae4ea19b29085f26bb12a4a0d5daf69d74422c23 100644 (file)
@@ -9,14 +9,25 @@
 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 ($::lsbmajdistrelease >= 8) {
+               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':
@@ -24,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':
@@ -54,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',
@@ -62,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':
@@ -77,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 ($::lsbmajdistrelease >= 8) {
+               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'],
                }
        }