]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/ferm/manifests/init.pp
ferm: change ferm.conf to a template
[dsa-puppet.git] / modules / ferm / manifests / init.pp
index 03025d53533dd857a385da953ab3270ed06c619a..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':
@@ -66,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':
@@ -81,10 +92,31 @@ 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 ($::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'],
+               }
        }
 
 }