stop using virtual resources for ferm::rule
[mirror/dsa-puppet.git] / modules / ferm / manifests / init.pp
index e23e15d..781a4a1 100644 (file)
@@ -7,10 +7,6 @@
 #   include ferm
 #
 class ferm {
-       # realize (i.e. enable) all @ferm::rule virtual resources
-       Ferm::Rule <| |>
-       Ferm::Conf <| |>
-
        File { mode => '0400' }
 
        package { 'ferm':
@@ -28,6 +24,12 @@ class ferm {
                hasstatus   => false,
                status      => '/bin/true',
        }
+       exec {
+               "ferm reload":
+                       command     => "service ferm reload",
+                       refreshonly => true,
+       }
+
 
        $munin_ips = getfromhash($site::nodeinfo, 'misc', 'v4addrs')
                .map |$addr| { "ip_${addr}" }
@@ -40,7 +42,7 @@ class ferm {
 
        file { '/etc/ferm':
                ensure  => directory,
-               notify  => Service['ferm'],
+               notify  => Exec['ferm reload'],
                require => Package['ferm'],
                mode    => '0755'
        }
@@ -63,29 +65,50 @@ class ferm {
        file { '/etc/default/ferm':
                source  => 'puppet:///modules/ferm/ferm.default',
                require => Package['ferm'],
-               notify  => Service['ferm'],
+               notify  => Exec['ferm reload'],
                mode    => '0444',
        }
        file { '/etc/ferm/ferm.conf':
                content => template('ferm/ferm.conf.erb'),
-               notify  => Service['ferm'],
+               notify  => Exec['ferm reload'],
        }
        file { '/etc/ferm/conf.d/00-init.conf':
                content => template('ferm/00-init.conf.erb'),
-               notify  => Service['ferm'],
+               notify  => Exec['ferm reload'],
        }
        file { '/etc/ferm/conf.d/me.conf':
                content => template('ferm/me.conf.erb'),
-               notify  => Service['ferm'],
+               notify  => Exec['ferm reload'],
        }
        file { '/etc/ferm/conf.d/defs.conf':
                content => template('ferm/defs.conf.erb'),
-               notify  => Service['ferm'],
+               notify  => Exec['ferm reload'],
        }
-       file { '/etc/ferm/conf.d/interfaces.conf':
-               content => template('ferm/interfaces.conf.erb'),
-               notify  => Service['ferm'],
+
+       file { '/etc/ferm/conf.d/50-munin-interfaces.conf':
+               content => template('ferm/conf.d-munin-interfaces.conf.erb'),
+               notify  => Exec['ferm reload'],
+       }
+       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  => Exec['ferm reload'],
+       }
+
        augeas { 'logrotate_ulogd2':
                context => '/files/etc/logrotate.d/ulogd2',
                changes => [