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 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, } }