summaryrefslogtreecommitdiff
path: root/manifests/host.pp
blob: aeb254d958d7f8a9efcc8c707d5b1c27d46fba47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# host.pp - the master host of the munin installation
# Copyright (C) 2007 David Schmitt <david@schmitt.edv-bus.at>
# See LICENSE for the full license granted to you.

class munin::host
{
	package {"munin": ensure => installed, }

	File <<| tag == 'munin' |>>

    file{'/etc/munin/munin.conf.header':
        source => [ "puppet://$server/files/munin/config/host/${fqdn}/munin.conf.header",
                    "puppet://$server/files/munin/config/host/munin.conf.header.$operatingsystem",
                    "puppet://$server/files/munin/config/host/munin.conf.header",
                    "puppet://$server/munin/config/host/munin.conf.header.$operatingsystem",
                    "puppet://$server/munin/config/host/munin.conf.header" ],
        notify => Exec['concat_/etc/munin/munin.conf'],
        owner => root, group => 0, mode => 0644;
    }

	concatenated_file { "/etc/munin/munin.conf":
		dir => $NODESDIR,
		header => "/etc/munin/munin.conf.header",
	}
	
    file { ["/var/log/munin-update.log", "/var/log/munin-limits.log", 
               "/var/log/munin-graph.log", "/var/log/munin-html.log"]:
        ensure => present,
        mode => 640, owner => munin, group => 0;
    }

    include munin::plugins::muninhost

    case $operatingsystem {
        centos: { include munin::host::cgi }
    }
}

class munin::host::cgi {
    exec{'set_modes_for_cgi':
        command => 'chgrp apache /var/log/munin /var/log/munin/munin-graph.log && chmod g+w /var/log/munin /var/log/munin/munin-graph.log && find /var/www/munin/* -maxdepth 1 -type d -exec chgrp -R apache {} \; && find /var/www/munin/* -maxdepth 1 -type d -exec chmod g+w {} \;',
        refreshonly => true,
        subscribe => File['/etc/munin/munin.conf.header'],
    }

    file{'/etc/logrotate.d/munin'
        source => [ "puppet://$server/files/munin/config/host/${fqdn}/logrotate"
                    "puppet://$server/files/munin/config/host/logrotate.$operatingsystem",
                    "puppet://$server/files/munin/config/host/logrotate",
                    "puppet://$server/munin/config/host/logrotate.$operatingsystem",
                    "puppet://$server/munin/config/host/logrotate" ],
        owner => root, group => 0, mode => 0644;
    }
}

class munin::snmp_collector
{

	file { 
		"/var/lib/puppet/modules/munin/create_snmp_links":
			source => "puppet://$server/munin/create_snmp_links.sh",
			mode => 755, owner => root, group => 0;
	}

	exec { "create_snmp_links":
		command => "/var/lib/puppet/modules/munin/create_snmp_links $NODESDIR",
		require => File["snmp_links"],
		timeout => "2048",
		schedule => daily
	}
}