aboutsummaryrefslogtreecommitdiffstats
path: root/deployment/mgagit/manifests/init.pp
blob: 6b346f726bef840444b1460a6d158b2766e6f4fe (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
class mgagit(
  $ldap_server = 'ldap.mageia.org',
  $binddn = 'uid=mgagit,ou=People,dc=mageia,dc=org',
  $bindpw
){
  $git_login = 'git'
  $git_homedir = "/var/lib/${git_login}"
  $gitolite_dir = "${git_homedir}/.gitolite"
  $gitolite_keydir = "${gitolite_dir}/keydir"
  $gitolite_confdir = "${gitolite_dir}/conf"
  $gitolite_conf = "${gitolite_confdir}/gitolite.conf"
  $gitoliterc = "$git_homedir/.gitolite.rc"
  $bindpwfile = '/etc/mgagit.secret'

  package { ['mgagit', 'gitolite']:
    ensure => installed,
  }

  group { $git_login:
    ensure => present,
  }
  user { $git_login:
    ensure      => present,
    comment     => 'Git user',
    home        => $git_homedir,
    managedhome => true,
    git         => $git_login,
  }

  file { '/etc/mgagit.conf':
    ensure  => present,
    owner   => root,
    group   => root,
    mode    => '0644',
    content => template('mgagit/mgagit.conf'),
    require => Package['mgagit'],
  }

  file { [$gitolite_dir, $gitolite_keydir, $gitolite_confdir]:
    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 %>'),
  }
}
# vim: sw=2