aboutsummaryrefslogtreecommitdiffstats
path: root/modules/youri-check/manifests/init.pp
blob: 6ee6461cf0f3fec78627ae7e41e102f3397d8d3d (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
class youri-check {
    class base {
        $vhost = "check.${::domain}"
        $user = 'youri'
        $home = '/var/lib/youri'
        $home_check = '/var/www/youri-check'
        $pgsql_password = extlookup('youri_pgsql','x')

        user { $user:
            comment => 'Youri Check',
            home => $home,
        }

        file { $home:
            ensure => directory,
            owner => $user,
            group => $user,
        }

        file { $home_check:
            ensure => directory,
            owner => $user,
            group => $user,
        }

        $pgsql_server = "${vhost}"

        package { ['youri-check', 'perl-DBD-Pg', 'perl-Youri-Media']: }

    }


    define config($version) {
        include youri-check::base

        $config = "/etc/youri/${version}.conf"
        $outdir = "/var/www/youri-check/${version}"
        $pgsql_db = "youri_check_${version}"
        $pgsql_server = $base::pgsql_server
        $pgsql_user = "youri${version}"
        $pgsql_password = extlookup('youri_pgsql','x')

        file { "${config}":
            ensure  => present,
            owner   => $base::user,
            mode    => '0640',
            content => template("youri-check/${version}.conf"),
            require => User[$base::user],
        }
    }


    define createdb_user($version) {
	$pgsql_db = "youri_check_${version}"
	$pgsql_user = "youri${version}"
	$pgsql_password = extlookup('youri_pgsql','x')

	        postgresql::remote_user { $pgsql_user:
            password => $base::pgsql_password,
        }

        postgresql::remote_database { $pgsql_db:
            description => "Youri Check results",
            user        => $pgsql_user,
        }
    }

    define check($version, $hour = "*", $minute = 0) {
        include youri-check::base
        $config = "/etc/youri/${version}.conf"
        $pgsql_server = $base::pgsql_server
        $pgsql_db = "youri_check_${version}"
        $pgsql_user = "youri${version}"
        $pgsql_password = extlookup('youri_pgsql','x')

        postgresql::remote_user { $pgsql_user:
            password => $base::pgsql_password,
        }

        postgresql::remote_database { $pgsql_db:
            description => "Youri Check results",
            user        => $pgsql_user,
        }
        cron { "check_${version}":
            command     => "youri-check -c ${config} test",
            hour        => $hour,
            minute      => $minute,
            user        => $base::user,
            environment => "MAILTO=root",
            require     => User[$base::user],
        }
    }

    define report_www {
        include youri-check::base
        $outdir = "/var/www/youri-check/"
        apache::vhost::base { $base::vhost:
            location => $outdir,
            content => template('youri-check/vhost_check.conf'),
        }
        apache::vhost::base { "ssl_${base::vhost}":
            vhost    => $base::vhost,
            use_ssl  => true,
            location => $outdir,
            content => template('youri-check/vhost_check.conf'),
        }
    }

    define report($version, $hour = "*", $minute = 20) {
        include youri-check::base

        $config = "/etc/youri/${version}.conf"

        $outdir = "/var/www/youri-check/${version}"
        file { "${outdir}":
            ensure => directory,
            owner  => $base::user,
            mode   => '0755',
        }

        cron { "check_${version}":
            command => "youri-check -c ${config} report",
            hour    => $hour,
            minute  => $minute,
            user    => $base::user,
            require => User[$base::user],
        }
    }
}