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
|
# This class handles a gitosis installation, with /var/git as the root for
# git repositories.
class gitosis inherits git {
# directory for gitosis user and repositories
file { "/var/git":
ensure => directory,
mode => 0755,
owner => gitosis,
group => gitosis,
}
# repositories folder
file { "/var/git/repositories":
ensure => directory,
owner => gitosis,
group => gitosis,
mode => 0755,
recurse => false,
}
# symbolic link
file { "/var/cache/git":
ensure => "/var/git/repositories",
force => true,
backup => false,
require => File['/var/git/repositories'],
}
# the needed packages
package { "gitosis": ensure => installed }
# ensures that the group exists
group { "gitosis":
ensure => present,
allowdupe => false,
require => Package["gitosis"],
}
# alters the user's home dir
user { "gitosis":
allowdupe => false,
comment => "git repository hosting,,,",
ensure => present,
home => "/var/git",
shell => "/bin/sh",
gid => "gitosis",
groups => [ "puppet" ],
require => Group["gitosis"],
}
# tries to get rid of ugly directory structure
file { "/srv/gitosis":
ensure => absent,
force => true,
backup => false,
require => User["gitosis"],
}
# we also don't need /var/gitosis
file { "/var/gitosis":
ensure => absent,
force => true,
backup => false,
require => User["gitosis"],
}
# mass update script
file { "/usr/local/sbin/git-mass-update-server-info":
ensure => present,
owner => root,
group => root,
mode => 0755,
source => "puppet:///modules/git/git-mass-update-server-info",
}
# mass update hourly
cron { "/usr/local/sbin/git-mass-update-server-info":
command => "/usr/local/sbin/git-mass-update-server-info &> /dev/null",
user => root,
hour => "*/1",
minute => "20",
ensure => present,
require => File['/usr/local/sbin/git-mass-update-server-info'],
}
}
|