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
|
class mirror {
class base {
$bindir = '/usr/local/bin'
$locksdir = '/home/mirror/locks'
file { "$locksdir":
ensure => directory,
owner => mirror,
group => mirror,
mode => 755
}
group {"mirror":
ensure => present,
}
user {"mirror":
ensure => present,
comment => "System user use to run mirror scripts",
managehome => true,
gid => mirror,
shell => "/bin/bash",
}
}
define mirrordir ($remoteurl, $localdir, $rsync_options="-avH --delete") {
include base
$lockfile = "$locksdir/$name"
file { "$localdir":
ensure => directory,
owner => mirror,
group => mirror,
mode => 755,
}
file { "mirror_$name":
path => "$bindir/mirror_$name",
ensure => present,
owner => root,
group => root,
mode => 755,
content => template("mirror/mirrordir"),
}
cron { "mirror_$name":
user => mirror,
minute => '*/10',
command => "$bindir/mirror_$name",
require => File["mirror_$name"],
}
}
# For main Mageia mirror
class main inherits base {
file { "update_timestamp":
path => "$bindir/update_timestamp",
ensure => present,
owner => root,
group => root,
mode => 755,
content => template("mirror/update_timestamp")
}
cron { mirror:
user => mirror,
minute => '*/10',
command => "$bindir/update_timestamp",
require => [File["update_timestamp"], User['mirror']],
}
}
class mageia inherits base {
mirrordir { "mageia":
remoteurl => "rsync://rsync.$domain/mageia",
localdir => '/distrib/mageia',
}
}
class newrelease inherits base {
mirrordir { "newrelease":
remoteurl => "rsync://rsync.$domain/newrelease",
localdir => '/distrib/newrelease',
}
}
class mdv2010spring inherits base {
mirrordir { "mdv2010.1":
remoteurl => "rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2010.1",
localdir => '/distrib/mandriva/',
}
}
}
|