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
|
class mirror {
class base {
$bindir = '/usr/local/bin'
$locksdir = '/home/mirror/locks'
file { "$bindir":
ensure => directory,
owner => root,
group => root,
mode => 755
}
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 => [0, 10, 20, 30, 40, 50],
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,
hour => 10,
minute => 14,
command => "$bindir/update_timestamp",
require => File["update_timestamp"],
}
}
class mirrorbootstrap inherits base {
mirrordir { "bootstrap":
remoteurl => "rsync://rsync.$domain/bootstrap",
localdir => '/distrib/bootstrap',
}
}
class mirrormageia inherits base {
mirrordir { "mageia":
remoteurl => "rsync://rsync.$domain/mageia",
localdir => '/distrib/mageia',
}
}
class mirrormdv2010spring inherits base {
mirrordir { "mdv2010.1":
remoteurl => "rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2010.1",
localdir => '/distrib/mandriva/',
}
}
}
|