puppet/git/manifests/init.pp

90 lines
1.7 KiB
Puppet

# Install Git client tools.
#
class git::client {
package { "git":
name => $operatingsystem ? {
"ubuntu" => "git-core",
default => "git",
},
ensure => installed,
}
}
# Install prequisites for serving Git repositories
#
# === Global variables
#
# $git_datadir:
# Directory where repositories are stored
#
class git::server {
include git::client
if $git_datadir {
file { "${git_datadir}":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
file { "/srv/git":
ensure => link,
target => "${git_datadir}",
require => File["${git_datadir}"],
}
} else {
file { "/srv/git":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
}
}
# Install Git daemon
#
class git::daemon inherits git::server {
package { "git-daemon":
ensure => installed,
}
include inetd::server
inetd::service { "git":
ensure => present,
require => [ File["/srv/git"],
Package["git-daemon"] ],
}
}
# Install gitweb
#
class git::gitweb inherits git::server {
package { "gitweb":
ensure => installed,
}
file { "/var/www/git/gitweb_config.perl":
ensure => present,
source => [ "puppet:///files/git/gitweb_config.perl.${fqdn}",
"puppet:///files/git/gitweb_config.perl",
"puppet:///modules/git/gitweb_config.perl", ],
mode => 0644,
owner => root,
group => root,
require => Package["gitweb"],
}
}