ferm cleanup: bmdb1:dedup
[mirror/dsa-puppet.git] / modules / ferm / manifests / init.pp
index 7115b7c..f33c8ba 100644 (file)
@@ -16,18 +16,12 @@ class ferm {
        package { 'ferm':
                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
-               }
+       package { 'ulogd2':
+               ensure => installed
+       }
+       package { 'ulogd':
+               # Remove instead of purge ulogd because it deletes log files on purge.
+               ensure => absent
        }
 
        service { 'ferm':
@@ -35,18 +29,14 @@ class ferm {
                status      => '/bin/true',
        }
 
-       $munin_ips = split(regsubst($::v4ips, '([^,]+)', 'ip_\1', 'G'), ',')
+       $munin_ips = getfromhash($site::nodeinfo, 'misc', 'v4addrs')
+               .map |$addr| { "ip_${addr}" }
 
        munin::check { $munin_ips: script => 'ip_', }
 
-       if $v6ips {
-               $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'), ',')
-       munin::check { $munin6_ip6s: ensure => absent }
+       $munin6_ips = getfromhash($site::nodeinfo, 'misc', 'v6addrs')
+               .map |$addr| { "ip_${addr}" }
+       munin::ipv6check { $munin6_ips: }
 
        file { '/etc/ferm':
                ensure  => directory,
@@ -77,7 +67,11 @@ 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/00-init.conf':
+               content => template('ferm/00-init.conf.erb'),
                notify  => Service['ferm'],
        }
        file { '/etc/ferm/conf.d/me.conf':
@@ -88,29 +82,48 @@ class ferm {
                content => template('ferm/defs.conf.erb'),
                notify  => Service['ferm'],
        }
-       file { '/etc/ferm/conf.d/interfaces.conf':
-               content => template('ferm/interfaces.conf.erb'),
+
+       file { '/etc/ferm/conf.d/50-munin-interfaces.conf':
+               content => template('ferm/conf.d-munin-interfaces.conf.erb'),
+               notify  => Service['ferm'],
+       }
+       @ferm::rule { 'dsa-munin-interfaces-in':
+               prio        => '001',
+               description => 'munin accounting',
+               chain       => 'INPUT',
+               domain      => '(ip ip6)',
+               rule        => 'daddr ($MUNIN_IPS) NOP'
+       }
+       @ferm::rule { 'dsa-munin-interfaces-out':
+               prio        => '001',
+               description => 'munin accounting',
+               chain       => 'OUTPUT',
+               domain      => '(ip ip6)',
+               rule        => 'saddr ($MUNIN_IPS) NOP'
+       }
+
+       file { '/etc/ferm/dsa.d/010-base.conf':
+               content => template('ferm/dsa.d-010-base.conf.erb'),
                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,
-               }
-       } else {
-               file { '/etc/logrotate.d/ulogd':
-                       source  => 'puppet:///modules/ferm/logrotate-ulogd',
-                       mode    => '0444',
-                       require => Package['debian.org'],
-               }
+
+       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,
        }
 
 }