]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/ferm/manifests/init.pp
add params for ganeti
[dsa-puppet.git] / modules / ferm / manifests / init.pp
1 # = Class: ferm
2 #
3 # This class installs ferm and sets up rules
4 #
5 # == Sample Usage:
6 #
7 #   include ferm
8 #
9 class ferm {
10         # realize (i.e. enable) all @ferm::rule virtual resources
11         Ferm::Rule <| |>
12         Ferm::Conf <| |>
13
14         File { mode => '0400' }
15
16         package { 'ferm':
17                 ensure => installed
18         }
19         package { 'ulogd':
20                 ensure => installed
21         }
22
23         service { 'ferm':
24                 hasstatus   => false,
25                 status      => '/bin/true',
26         }
27
28         $munin_ips = split(regsubst($::v4ips, '([^,]+)', 'ip_\1', 'G'), ',')
29
30         munin::check { $munin_ips: script => 'ip_', }
31
32         if $v6ips {
33                 $munin6_ips = split(regsubst($::v6ips, '([^,]+)', 'ip_\1', 'G'), ',')
34                 munin::ipv6check { $munin6_ips: }
35         }
36
37         # get rid of old stuff
38         $munin6_ip6s = split(regsubst($::v6ips, '([^,]+)', 'ip6_\1', 'G'), ',')
39         munin::check { $munin6_ip6s: ensure => absent }
40
41         file { '/etc/ferm':
42                 ensure  => directory,
43                 notify  => Service['ferm'],
44                 require => Package['ferm'],
45                 mode    => '0755'
46         }
47         file { '/etc/ferm/dsa.d':
48                 ensure => directory,
49                 mode   => '0555',
50                 purge   => true,
51                 force   => true,
52                 recurse => true,
53                 source  => 'puppet:///files/empty/',
54         }
55         file { '/etc/ferm/conf.d':
56                 ensure => directory,
57                 mode   => '0555',
58                 purge   => true,
59                 force   => true,
60                 recurse => true,
61                 source  => 'puppet:///files/empty/',
62         }
63         file { '/etc/default/ferm':
64                 source  => 'puppet:///modules/ferm/ferm.default',
65                 require => Package['ferm'],
66                 notify  => Service['ferm'],
67                 mode    => '0444',
68         }
69         file { '/etc/ferm/ferm.conf':
70                 source  => 'puppet:///modules/ferm/ferm.conf',
71                 notify  => Service['ferm'],
72         }
73         file { '/etc/ferm/conf.d/me.conf':
74                 content => template('ferm/me.conf.erb'),
75                 notify  => Service['ferm'],
76         }
77         file { '/etc/ferm/conf.d/defs.conf':
78                 content => template('ferm/defs.conf.erb'),
79                 notify  => Service['ferm'],
80         }
81         file { '/etc/ferm/conf.d/interfaces.conf':
82                 content => template('ferm/interfaces.conf.erb'),
83                 notify  => Service['ferm'],
84         }
85         file { '/etc/logrotate.d/ulogd':
86                 source  => 'puppet:///modules/ferm/logrotate-ulogd',
87                 mode    => '0444',
88                 require => Package['debian.org'],
89         }
90
91 }