aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mirror/manifests/init.pp
blob: b9a245bb5e3ce160f9b0a2f083553f8af649e647 (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
class mirror {
    class base {
        $bindir = '/usr/local/bin'
        $locksdir = '/home/mirror/locks'

        file { "$locksdir":
            ensure => directory,
            owner => mirror,
            group => mirror,
        }

        group {"mirror": }

        user {"mirror":
            comment => "System user use to run mirror scripts",
            gid => mirror,
        }
    }

    define mirrordir ($remoteurl, $localdir, $rsync_options="-avH --delete") {
    	include base
        $lockfile = "$locksdir/$name"

        file { "$localdir":
            ensure => directory,
            owner => mirror,
            group => mirror,
        }

    	local_script { "mirror_$name":
            content => template("mirror/mirrordir"),
        }

        cron { "mirror_$name":
            user => mirror,
            minute => '*/10',
            command => "$bindir/mirror_$name",
            require => Local_script["mirror_$name"],
        }
    }

    # For main Mageia mirror
    class main inherits base {
        local_script { "update_timestamp":
            content => template("mirror/update_timestamp")
        }

        cron { mirror:
            user => mirror,
            minute => '*/10',
            command => "/usr/local/bin/update_timestamp",
            require => [Local_script["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/',
        }
    }
}