puppet/wiki/manifests/init.pp

128 lines
3.4 KiB
Puppet

class wiki::moin {
if !$wiki_moin_version {
fail("\$wiki_moin_version must be set.")
}
custom::file { "/usr/local/src/moin-${wiki_moin_version}.tar.gz":
ensure => present,
mode => 0644,
owner => root,
group => root,
source => "http://static.moinmo.in/files/moin-${wiki_moin_version}.tar.gz",
}
file { "/usr/local/src/moin-${wiki_moin_version}.patch":
ensure => present,
mode => 0644,
owner => root,
group => root,
source => "puppet:///files/wiki/moin-${wiki_moin_version}.patch",
}
util::extract::tar { "/usr/local/src/moin-${wiki_moin_version}":
strip => 1,
source => "/usr/local/src/moin-${wiki_moin_version}.tar.gz",
require => Custom::File["/usr/local/src/moin-${wiki_moin_version}.tar.gz"],
}
util::patch { "/usr/local/src/moin-${wiki_moin_version}":
source => "/usr/local/src/moin-${wiki_moin_version}.patch",
require => Util::Extract::Tar["/usr/local/src/moin-${wiki_moin_version}"],
}
python::setup::install { "/usr/local/src/moin-${wiki_moin_version}":
require => Util::Patch["/usr/local/src/moin-${wiki_moin_version}"],
}
}
class wiki::graphingwiki::common {
if !$wiki_gwiki_revision {
fail("\$wiki_graphingwiki_revision must be set.")
}
include svn::client
svn::export { "/usr/local/src/graphingwiki":
source => "http://svn.graphingwiki.webfactional.com/trunk",
revision => $wiki_gwiki_revision,
}
}
class wiki::graphingwiki inherits wiki::graphingwiki::common {
python::setup::install { "/usr/local/src/graphingwiki/graphingwiki":
require => Svn::Export["/usr/local/src/graphingwiki"],
}
}
class wiki::opencollab inherits wiki::graphingwiki::common {
python::setup::install { "/usr/local/src/graphingwiki/opencollab":
require => Svn::Export["/usr/local/src/graphingwiki"],
}
}
class wiki::collab inherits wiki::graphingwiki::common {
python::setup::install { "/usr/local/src/graphingwiki/collab":
require => Svn::Export["/usr/local/src/graphingwiki"],
}
}
class wiki::collab::base {
include wiki::graphingwiki
include wiki::opencollab
include wiki::collab
include user::system
realize(User["collab"], Group["collab"])
if $wiki_datadir {
file { "${wiki_datadir}":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
file { "/srv/wikis":
ensure => link,
target => "${wiki_datadir}",
require => File["${wiki_datadir}"],
}
} else {
file { "/srv/wikis":
ensure => directory,
mode => 0755,
owner => root,
group => root,
}
}
file { [ "/srv/wikis/collab",
"/srv/wikis/collab/archive",
"/srv/wikis/collab/cache",
"/srv/wikis/collab/config",
"/srv/wikis/collab/dockbook",
"/srv/wikis/collab/htdocs",
"/srv/wikis/collab/log",
"/srv/wikis/collab/underlay",
"/srv/wikis/collab/user",
"/srv/wikis/collab/wikis",
"/srv/wikis/collab/run", ]:
ensure => directory,
mode => 2770,
owner => collab,
group => collab,
require => [ File["/srv/wikis"], User["collab"], Group["collab"], ],
}
}