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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
class mgagit(
$git_dir = '/git',
$ldap_server = 'ldap.mageia.org',
$binddn = 'uid=mgagit,ou=People,dc=mageia,dc=org',
$vhost = 'projects.mageia.org',
$bindpw
){
$git_login = 'git'
$git_homedir = "/var/lib/${git_login}"
$gitolite_dir = "${git_homedir}/.gitolite"
$gitolite_keydir = "${gitolite_dir}/keydir"
$gitolite_tmpldir = "/etc/mgagit/tmpl"
$gitolite_confdir = "${gitolite_dir}/conf"
$gitolite_conf = "${gitolite_confdir}/gitolite.conf"
$gitoliterc = "$git_homedir/.gitolite.rc"
$bindpwfile = '/etc/mgagit.secret'
$reposconf_dir = "${git_homedir}/repos-config"
$vhostdir = "$git_homedir/www"
package { ['mgagit', 'gitolite']:
ensure => installed,
}
group { $git_login:
ensure => present,
}
user { $git_login:
ensure => present,
comment => 'Git user',
home => $git_homedir,
managehome => true,
gid => $git_login,
}
file { '/etc/mgagit.conf':
ensure => present,
owner => root,
group => root,
mode => '0644',
content => template('mgagit/mgagit.conf'),
require => Package['mgagit'],
}
file { $gitolite_tmpldir:
ensure => directory,
owner => root,
group => root,
mode => '0755',
}
file { "$gitolite_tmpldir/group.gl":
ensure => 'link',
target => '/usr/share/mgagit/tmpl/group.gl',
}
file { "$gitolite_tmpldir/repodef_repo.gl":
ensure => present,
owner => root,
group => root,
mode => '0644',
content => template('mgagit/repodef_repo.gl'),
}
mgagit::tmpl { 'soft':
tmpldir => $gitolite_tmpldir,
group => 'packagers',
}
mgagit::tmpl { 'web':
tmpldir => $gitolite_tmpldir,
ml => 'atelier',
}
file { [$gitolite_dir, $gitolite_keydir, $gitolite_confdir,
$reposconf_dir, $vhostdir]:
ensure => directory,
owner => $git_login,
group => $git_login,
mode => '0755',
}
file { $gitoliterc:
ensure => present,
owner => $git_login,
group => $git_login,
mode => '0644',
content => template('mgagit/gitolite.rc'),
}
file { $bindpwfile:
ensure => present,
owner => $git_login,
group => $git_login,
mode => '0600',
content => inline_template('<%= @bindpw %>'),
}
file { $git_dir:
ensure => directory,
owner => $git_login,
group => $git_login,
mode => '0755',
}
file { "$git_homedir/repositories":
ensure => 'link',
target => $git_dir,
}
apache::vhost::base { $vhost:
location => $vhostdir,
}
}
# vim: sw=2
|