puppet/vsroom/manifests/init.pp
2011-12-28 23:59:45 +02:00

101 lines
2.7 KiB
Puppet

# Install vsroom.
#
class vsroom {
require abusehelper
case $operatingsystem {
centos: {
case $operatingsystemrelease {
/^5/: {
Python::Setup::Install["/usr/local/src/vsroom"] {
python => "python2.6",
require => Package["python26"],
}
}
}
}
}
file { "/usr/local/src/vsroom.tar.gz":
ensure => present,
mode => 0644,
owner => root,
group => root,
source => "puppet:///files/packages/${vsroom_package}",
links => follow,
}
util::extract::tar { "/usr/local/src/vsroom":
strip => 1,
source => "/usr/local/src/vsroom.tar.gz",
require => File["/usr/local/src/vsroom.tar.gz"],
before => Python::Setup::Install["/usr/local/src/vsroom"],
}
python::setup::install { "/usr/local/src/vsroom": }
include user::system
realize(User["vsroom"], Group["vsroom"])
if $vsroom_datadir {
file { "${vsroom_datadir}":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
file { "/var/lib/vsroom":
ensure => link,
target => "${vsroom_datadir}",
require => File["${vsroom_datadir}"],
}
} else {
file { "/var/lib/vsroom":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
}
file { "/var/lib/vsroom/.htpasswd":
ensure => present,
mode => 0640,
owner => root,
group => $apache::sslserver::group,
require => File["/var/lib/vsroom"],
}
$htdocs = $operatingsystem ? {
"ubuntu" => "/usr/local/share/vsroom/htdocs",
default => "/usr/share/vsroom/htdocs",
}
file { "${htdocs}/config.json":
ensure => present,
mode => 0644,
owner => "root",
group => "root",
source => [ "puppet:///files/vsroom/config.json",
"puppet:///modules/vsroom/config.json", ],
require => Python::Setup::Install["/usr/local/src/vsroom"],
}
define configwebhost() {
file { "/srv/www/https/${name}/vsroom":
ensure => link,
target => $htdocs,
require => File["/srv/www/https/${name}"],
}
}
if $vsroom_webhosts {
apache::configfile { "vsroom.conf":
http => false,
source => "puppet:///modules/vsroom/vsroom-httpd.conf",
}
configwebhost { $vsroom_webhosts: }
}
}