From 5a7df2b0bdeef5c65fc0fa308351d8bc0aeaf550 Mon Sep 17 00:00:00 2001 From: Ossi Salmi Date: Tue, 9 Nov 2010 14:41:11 +0200 Subject: [PATCH] Improved collab creation --- wiki/files/htaccess | 14 +++++++ wiki/manifests/init.pp | 60 +++++++++++++++++++++++++++- wiki/templates/collab-httpd.conf.erb | 4 ++ 3 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 wiki/files/htaccess create mode 100644 wiki/templates/collab-httpd.conf.erb diff --git a/wiki/files/htaccess b/wiki/files/htaccess new file mode 100644 index 0000000..532c4aa --- /dev/null +++ b/wiki/files/htaccess @@ -0,0 +1,14 @@ +RewriteEngine On +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule ^(.*)$ wsgi/$1 [QSA,PT,L] + + + SetHandler wsgi-script + + +AuthType Basic +AuthName "Password Required (cancel for help)" +AuthUserFile /srv/wikis/collab/run/.htpasswd +AuthGroupFile /srv/wikis/collab/run/.htgroup + +Require valid-user diff --git a/wiki/manifests/init.pp b/wiki/manifests/init.pp index b2dc98b..f676c86 100644 --- a/wiki/manifests/init.pp +++ b/wiki/manifests/init.pp @@ -78,6 +78,16 @@ class wiki::collab inherits wiki::graphingwiki::common { class wiki::collab::base { + include cairo::python + include graphviz::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 @@ -85,6 +95,16 @@ class wiki::collab::base { 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, @@ -111,7 +131,7 @@ class wiki::collab::base { "/srv/wikis/collab/archive", "/srv/wikis/collab/cache", "/srv/wikis/collab/config", - "/srv/wikis/collab/dockbook", + "/srv/wikis/collab/docbook", "/srv/wikis/collab/htdocs", "/srv/wikis/collab/log", "/srv/wikis/collab/underlay", @@ -119,10 +139,46 @@ class wiki::collab::base { "/srv/wikis/collab/wikis", "/srv/wikis/collab/run", ]: ensure => directory, - mode => 2770, + 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, + } + } diff --git a/wiki/templates/collab-httpd.conf.erb b/wiki/templates/collab-httpd.conf.erb new file mode 100644 index 0000000..8a9964c --- /dev/null +++ b/wiki/templates/collab-httpd.conf.erb @@ -0,0 +1,4 @@ +/collab"> + Options +ExecCGI + AllowOverride All +