diff options
Diffstat (limited to 'manifests/daemon.pp')
-rw-r--r-- | manifests/daemon.pp | 66 |
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'], } } |