213 lines
5.5 KiB
Puppet
213 lines
5.5 KiB
Puppet
# Install MoinMoin.
|
|
#
|
|
# === Global variables
|
|
#
|
|
# $wiki_moin_version:
|
|
# MoinMoin version number.
|
|
#
|
|
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}"],
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Fetch graphingwiki from svn.
|
|
#
|
|
# === Global variables
|
|
#
|
|
# $wiki_gwiki_revision:
|
|
# Graphingwiki revision.
|
|
#
|
|
class wiki::graphingwiki::common {
|
|
|
|
if !$wiki_graphingwiki_revision {
|
|
fail("\$wiki_graphingwiki_revision must be set.")
|
|
}
|
|
|
|
include svn::client
|
|
svn::export { "/usr/local/src/graphingwiki":
|
|
source => "http://svn.graphingwiki.webfactional.com/trunk",
|
|
ensure => $wiki_gwiki_revision,
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install Graphingwiki.
|
|
#
|
|
class wiki::graphingwiki inherits wiki::graphingwiki::common {
|
|
|
|
python::setup::install { "/usr/local/src/graphingwiki/graphingwiki":
|
|
require => Svn::Export["/usr/local/src/graphingwiki"],
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install Opencollab.
|
|
#
|
|
class wiki::opencollab inherits wiki::graphingwiki::common {
|
|
|
|
python::setup::install { "/usr/local/src/graphingwiki/opencollab":
|
|
require => Svn::Export["/usr/local/src/graphingwiki"],
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install collab.
|
|
#
|
|
class wiki::collab inherits wiki::graphingwiki::common {
|
|
|
|
python::setup::install { "/usr/local/src/graphingwiki/collab":
|
|
require => Svn::Export["/usr/local/src/graphingwiki"],
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Configure collab server.
|
|
#
|
|
# === Global variables
|
|
#
|
|
# $wiki_datadir:
|
|
# Directory for wiki data. Defaults to /srv/wikis.
|
|
#
|
|
# $wiki_collab_fqdn:
|
|
# FQDN of collab virtual host. Defaults to $homename.
|
|
#
|
|
class wiki::collab::base {
|
|
|
|
include cairo::python
|
|
include igraph::python
|
|
include ldap::client::python
|
|
|
|
include apache::mod::authnz_ldap
|
|
include apache::mod::ldap
|
|
include apache::mod::rewrite
|
|
include apache::mod::wsgi
|
|
|
|
include wiki::graphingwiki
|
|
include wiki::opencollab
|
|
include wiki::collab
|
|
|
|
include user::system
|
|
realize(User["collab"], Group["collab"])
|
|
|
|
case $operatingsystem {
|
|
debian,ubuntu: {
|
|
exec { "usermod-www-data":
|
|
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
|
command => "usermod -a -G collab www-data",
|
|
unless => "id -n -G www-data | grep '\\bcollab\\b'",
|
|
}
|
|
}
|
|
}
|
|
|
|
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/docbook",
|
|
"/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 => 2660,
|
|
owner => collab,
|
|
group => collab,
|
|
require => [ File["/srv/wikis"], User["collab"], Group["collab"], ],
|
|
}
|
|
|
|
File["/srv/wikis/collab/underlay"] {
|
|
source => "/usr/local/share/moin/underlay",
|
|
recurse => true,
|
|
replace => false,
|
|
}
|
|
|
|
file { "/srv/wikis/collab/htdocs/.htaccess":
|
|
ensure => present,
|
|
mode => 0660,
|
|
owner => collab,
|
|
group => collab,
|
|
source => "puppet:///wiki/htaccess",
|
|
require => File["/srv/wikis/collab/htdocs"],
|
|
}
|
|
|
|
if !$wiki_collab_fqdn {
|
|
$wiki_collab_fqdn = $homename
|
|
}
|
|
|
|
file { "/srv/www/https/${wiki_collab_fqdn}/collab":
|
|
ensure => link,
|
|
target => "/srv/wikis/collab/htdocs",
|
|
require => File["/srv/www/https/${wiki_collab_fqdn}"],
|
|
}
|
|
|
|
file { "/srv/www/https/${wiki_collab_fqdn}/moin_static":
|
|
ensure => link,
|
|
target => "/usr/local/share/moin/htdocs",
|
|
require => File["/srv/www/https/${wiki_collab_fqdn}"],
|
|
}
|
|
|
|
apache::configfile { "collab.conf":
|
|
content => template("wiki/collab-httpd.conf.erb"),
|
|
http => false,
|
|
}
|
|
|
|
}
|