1 |
class youri-check { |
2 |
class base { |
3 |
$vhost = "check.$domain" |
4 |
$user = 'youri' |
5 |
$home = '/var/lib/youri' |
6 |
|
7 |
user { $user: |
8 |
comment => 'Youri Check', |
9 |
home => $home, |
10 |
} |
11 |
|
12 |
file { $home: |
13 |
ensure => directory, |
14 |
owner => $user, |
15 |
group => $user, |
16 |
} |
17 |
|
18 |
$pgsql_server = "$vhost" |
19 |
|
20 |
package { ['youri-check', 'perl-DBD-Pg', 'perl-Youri-Media']: } |
21 |
|
22 |
} |
23 |
|
24 |
define config($version) { |
25 |
include youri-check::base |
26 |
|
27 |
$config = "/etc/youri/$version.conf" |
28 |
$outdir = "/var/www/youri-check/$version" |
29 |
$pgsql_db = "youri_check_$version" |
30 |
$pgsql_server = $base::pgsql_server |
31 |
$pgsql_user = "youri$version" |
32 |
$pgsql_password = extlookup('youri_pgsql','x') |
33 |
|
34 |
file { "$config": |
35 |
ensure => present, |
36 |
owner => $base::user, |
37 |
mode => 640, |
38 |
content => template("youri-check/$version.conf"), |
39 |
require => User[$base::user], |
40 |
} |
41 |
} |
42 |
|
43 |
define check($version, $hour = "*", $minute = 0) { |
44 |
include youri-check::base |
45 |
$config = "/etc/youri/$version.conf" |
46 |
$pgsql_server = $base::pgsql_server |
47 |
$pgsql_db = "youri_check_$version" |
48 |
$pgsql_user = "youri$version" |
49 |
$pgsql_password = extlookup('youri_pgsql','x') |
50 |
|
51 |
postgresql::remote_user { $pgsql_user: |
52 |
password => $base::pgsql_password, |
53 |
} |
54 |
|
55 |
postgresql::remote_database { $pgsql_db: |
56 |
description => "Youri Check results", |
57 |
user => $pgsql_user, |
58 |
} |
59 |
cron { "check_$version": |
60 |
command => "youri-check -c $config test", |
61 |
hour => $hour, |
62 |
minute => $minute, |
63 |
user => $base::user, |
64 |
environment => "MAILTO=root", |
65 |
require => User[$base::user], |
66 |
} |
67 |
} |
68 |
|
69 |
define report_www { |
70 |
include youri-check::base |
71 |
$outdir = "/var/www/youri-check/" |
72 |
apache::vhost_simple { $base::vhost: |
73 |
location => $outdir, |
74 |
} |
75 |
} |
76 |
|
77 |
define report($version, $hour = "*", $minute = 20) { |
78 |
include youri-check::base |
79 |
|
80 |
$config = "/etc/youri/$version.conf" |
81 |
|
82 |
$outdir = "/var/www/youri-check/$version" |
83 |
file { "$outdir": |
84 |
ensure => directory, |
85 |
owner => $base::user, |
86 |
mode => 755, |
87 |
} |
88 |
|
89 |
cron { "check_$version": |
90 |
command => "youri-check -c $config report", |
91 |
hour => $hour, |
92 |
minute => $minute, |
93 |
user => $base::user, |
94 |
require => User[$base::user], |
95 |
} |
96 |
} |
97 |
} |