90 lines
1.7 KiB
Puppet
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"],
|
|
}
|
|
|
|
}
|