summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/init.pp65
-rw-r--r--templates/macros.erb (renamed from templates/macros)16
-rw-r--r--templates/website.erb1
3 files changed, 72 insertions, 10 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
index 782ac6f..5172678 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -1,4 +1,28 @@
-# apache class
+#
+# Puppet module for Apache
+#
+# This module is distributed under the GNU Affero General Public License:
+#
+# Backup module for puppet
+# Copyright (C) 2009 Sarava Group
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# TODO: log level, log files, etc
+# TODO: better variable names, enable value overwriting
+$apache_sites_folder = '/var/users/home';
+$apache_www_folder = '/var/www/sarava';
class apache {
@@ -9,5 +33,42 @@ class apache {
require => Package["apache"],
}
-}
+ # apache mod_macro configuration
+ file { "/etc/apache2/conf.d/macros":
+ ensure => present,
+ content => template('apache/macros.erb'),
+ owner => root,
+ group => root,
+ mode => 0644,
+ require => Service["apache"],
+ notify => Service["apache"],
+ }
+
+ # TODO: ensure folders exist with right modes and ownership
+ define website($ensure = present, $drupal = false, $pmwiki = false,
+ $moin = false, $trac = false, $ikiwiki = false,
+ $custom = false) {
+ file { "/etc/apache2/sites-available/$title":
+ ensure => $ensure,
+ content => template('apache/website.erb'),
+ owner => root,
+ group => root,
+ mode => 0644,
+ require => Service["apache"],
+ notify => Service["apache"],
+ }
+ $status = $ensure ? {
+ 'present' => "/etc/apache2/sites-available/$title",
+ default => 'absent',
+ }
+
+ file { "/etc/apache2/sites-enabled/$title":
+ ensure => $status,
+ owner => root,
+ group => root,
+ require => File["/etc/apache2/sites-available/$title"],
+ notify => Service["apache"],
+ }
+ }
+}
diff --git a/templates/macros b/templates/macros.erb
index e40bcd5..1a9d05c 100644
--- a/templates/macros
+++ b/templates/macros.erb
@@ -18,7 +18,7 @@
<Macro Drupal $version>
# begin drupal config
- <Directory /var/www/sarava/drupal-$version>
+ <Directory <%= apache_www_folder %>/drupal-$version>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride All
</Directory>
@@ -27,7 +27,7 @@
<Macro Wiki $site>
# begin wiki config
- <Directory /var/users/home/$site/wiki>
+ <Directory <%= apache_sites_folder %>/$site/wiki>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride All
</Directory>
@@ -36,7 +36,7 @@
<Macro Site $name>
# begin site config
- <Directory /var/users/home/$name/site>
+ <Directory <%= apache_sites_folder %>/$name/site>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride All
</Directory>
@@ -49,7 +49,7 @@
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
- PythonOption TracEnv /var/users/home/$site/trac
+ PythonOption TracEnv <%= apache_sites_folder %>/$site/trac
PythonOption TracUriRoot /trac
# This prevents strange behavior when using trac
@@ -61,7 +61,7 @@
<Location "/trac/login">
AuthType Basic
AuthName "Trac $site"
- AuthUserFile /var/users/home/$site/trac/auth/.htpasswd
+ AuthUserFile <%= apache_sites_folder %>/$site/trac/auth/.htpasswd
Require valid-user
</Location>
# end trac config
@@ -71,15 +71,15 @@
# begin moin config
Alias /moinroot /usr/share/moin/htdocs/
# TODO: fastcgi
- ScriptAlias /moin "/var/users/home/$site/moin/cgi-bin/moin.cgi"
+ ScriptAlias /moin "<%= apache_sites_folder %>/$site/moin/cgi-bin/moin.cgi"
# end moin config
- ScriptAlias /moin "/var/users/home/$site/moin/cgi-bin/moin.cgi"
+ ScriptAlias /moin "<%= apache_sites_folder %>/$site/moin/cgi-bin/moin.cgi"
# end moin config
</Macro>
<Macro Ikiwiki $name>
# begin ikiwiki config
- <Directory /var/users/home/$name/ikiwiki>
+ <Directory <%= apache_sites_folder %>/$name/ikiwiki>
Options Indexes Includes FollowSymLinks MultiViews ExecCGI
AllowOverride All
</Directory>
diff --git a/templates/website.erb b/templates/website.erb
new file mode 100644
index 0000000..3398f60
--- /dev/null
+++ b/templates/website.erb
@@ -0,0 +1 @@
+# TODO: virtual host definition