aboutsummaryrefslogtreecommitdiff
path: root/manifests/daemon.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/daemon.pp')
-rw-r--r--manifests/daemon.pp66
1 files changed, 66 insertions, 0 deletions
diff --git a/manifests/daemon.pp b/manifests/daemon.pp
index 7dedce9..75c0af6 100644
--- a/manifests/daemon.pp
+++ b/manifests/daemon.pp
@@ -1,6 +1,71 @@
class git::daemon (
$implementation = hiera('git::daemon::implementation', 'gitolite')
) {
+ # directory for gitosis user and repositories
+ file { "/var/git":
+ ensure => directory,
+ mode => 0755,
+ owner => git,
+ group => git,
+ }
+
+ # repositories folder
+ file { "/var/git/repositories":
+ ensure => directory,
+ owner => git,
+ group => git,
+ mode => 0755,
+ recurse => false,
+ }
+
+ # symbolic link
+ file { "/var/cache/git":
+ ensure => "/var/git/repositories",
+ force => true,
+ backup => false,
+ require => File['/var/git/repositories'],
+ }
+
+ # ensures that the group exists
+ group { "git":
+ ensure => present,
+ allowdupe => false,
+ require => Package["gitolite"],
+ }
+
+ # alters the user's home dir
+ # set '*' on password field to avoid this issue:
+ # https://stackoverflow.com/questions/15664561/ssh-key-asks-for-password/15761971#15761971
+ user { "git":
+ allowdupe => false,
+ comment => "git repository hosting,,,",
+ ensure => present,
+ home => "/var/git",
+ shell => "/bin/sh",
+ gid => "git",
+ password => '*',
+ groups => [ "puppet" ],
+ require => Group["git"],
+ }
+
+ # 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'],
+ }
case $implementation {
'gitosis': {
@@ -19,5 +84,6 @@ class git::daemon (
file => "/etc/inetd.conf",
line => "git stream tcp nowait git /usr/bin/git git daemon --inetd --verbose --base-path=/var/git/repositories /var/git/repositories",
ensure => present,
+ notify => Service['inetd'],
}
}