From 54eacd438e5fc4fb5618db553cee2594b2145c0e Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 3 Dec 2012 18:07:10 -0200 Subject: Initial gitolite support --- manifests/gitolite.pp | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++ manifests/init.pp | 1 + 2 files changed, 88 insertions(+) create mode 100644 manifests/gitolite.pp diff --git a/manifests/gitolite.pp b/manifests/gitolite.pp new file mode 100644 index 0000000..4dddd2b --- /dev/null +++ b/manifests/gitolite.pp @@ -0,0 +1,87 @@ +# This class handles a gitolite installation, with /var/git as the root for +# git repositories. + +class gitolite inherits git { + # directory for gitolite user and repositories + file { "/var/git": + ensure => directory, + mode => 0755, + owner => gitolite, + group => gitolite, + } + + # repositories folder + file { "/var/git/repositories": + ensure => directory, + owner => gitolite, + group => gitolite, + 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 { "gitolite": ensure => installed } + + # ensures that the group exists + group { "gitolite": + ensure => present, + allowdupe => false, + require => Package["gitolite"], + } + + # alters the user's home dir + user { "gitolite": + allowdupe => false, + comment => "git repository hosting,,,", + ensure => present, + home => "/var/git", + shell => "/bin/sh", + gid => "gitolite", + groups => [ "puppet" ], + require => Group["gitolite"], + } + + # tries to get rid of ugly directory structure + file { "/srv/gitolite": + ensure => absent, + force => true, + backup => false, + require => User["gitolite"], + } + + # we also don't need /var/gitolite + file { "/var/lib/gitolite": + ensure => absent, + force => true, + backup => false, + require => User["gitolite"], + } + + # 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'], + } +} + diff --git a/manifests/init.pp b/manifests/init.pp index 8a7b270..9e1a5f6 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -4,3 +4,4 @@ import "git.pp" import "gitosis.pp" import "gitweb.pp" import "git-daemon.pp" +import "gitolite.pp" -- cgit v1.2.3