diff --git a/vsroom/Makefile b/vsroom/Makefile new file mode 100644 index 0000000..2ddffee --- /dev/null +++ b/vsroom/Makefile @@ -0,0 +1,12 @@ +VSROOM = tip +VSROOMURL = https://bitbucket.org/clarifiednetworks/vsroom/get/$(VSROOM).tar.gz +OUT = /srv/puppet/files/common/packages + +all: tarball +tarball: vsroom.tar.gz +.PHONY: vsroom.tar.gz + +vsroom.tar.gz: + @umask 022 && mkdir -p $(OUT)/vsroom && \ + cd $(OUT)/vsroom && wget -nv -N $(VSROOMURL) && \ + cd $(OUT) && ln -fs vsroom/$(VSROOM).tar.gz vsroom.tar.gz diff --git a/vsroom/manifests/init.pp b/vsroom/manifests/init.pp new file mode 100644 index 0000000..3d38595 --- /dev/null +++ b/vsroom/manifests/init.pp @@ -0,0 +1,73 @@ +# Install vsroom. +# +class vsroom { + + require abusehelper + + file { "/usr/local/src/vsroom.tar.gz": + ensure => present, + mode => 0644, + owner => root, + group => root, + source => "puppet:///files/packages/vsroom.tar.gz", + 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": + python => $operatingsystem ? { + centos => "python2.6", + default => "python", + }, + require => $operatingsystem ? { + centos => Package["python26"], + default => undef, + }, + } + file { "/usr/local/bin/vsroomctl": + ensure => present, + mode => 0755, + owner => root, + group => root, + source => "/usr/local/src/vsroom/contrib/vsroomctl/vsroomctl", + require => Util::Extract::Tar["/usr/local/src/vsroom"], + } + file { "/usr/local/bin/vsroompasswd": + ensure => present, + mode => 0755, + owner => root, + group => root, + source => "/usr/local/src/vsroom/contrib/vsroompasswd/vsroompasswd", + require => Util::Extract::Tar["/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, + } + } + +}