# 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"], } } } } } if !$vsroom_package { if $vsroom_package_latest { $vsroom_package = $vsroom_package_latest } else { fail("Must define \$vsroom_package or \$vsroom_package_latest") } } 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": ensure => latest, 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.${fqdn}", "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: } } }