aboutsummaryrefslogtreecommitdiff
path: root/manifests/websites.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/websites.pp')
-rw-r--r--manifests/websites.pp92
1 files changed, 92 insertions, 0 deletions
diff --git a/manifests/websites.pp b/manifests/websites.pp
new file mode 100644
index 0000000..34475dd
--- /dev/null
+++ b/manifests/websites.pp
@@ -0,0 +1,92 @@
+class websites::setup {
+ # Configure Apache Web Server
+ $apache_www_folder = "/var/www/data"
+ $apache_sites_folder = "/var/sites"
+ $apache_error_dest = "http://${domain}/missing.html"
+ $drupal_folder = "${apache_www_folder}/drupal"
+
+ # Include apache
+ include apache
+
+ # The needed apache modules
+ apache::module { "rewrite":
+ ensure => present,
+ }
+
+ # Images folder
+ file { "${apache_www_folder}/images":
+ ensure => directory,
+ recurse => true,
+ purge => true,
+ force => true,
+ owner => "root",
+ group => "root",
+ # This mode will also apply to files from the source directory
+ mode => 0644,
+ # Puppet will automatically set +x for directories
+ source => "puppet://$server/files/apache/htdocs/images",
+ }
+
+ # Web index
+ file { "${apache_www_folder}/index.html":
+ ensure => present,
+ owner => "root",
+ group => "root",
+ mode => 0644,
+ source => "puppet://$server/files/apache/htdocs/index.html",
+ }
+
+ # Missing page
+ file { "${apache_www_folder}/missing.html":
+ ensure => present,
+ owner => "root",
+ group => "root",
+ mode => 0644,
+ source => "puppet://$server/files/apache/htdocs/missing.html",
+ }
+
+ # Default vhost: can just be applied on the defining host
+ apache::site { "$hostname":
+ server_alias => "$domain",
+ docroot => "${apache_www_folder}",
+ }
+
+ # We have to use 'zzz-erro' so it will be the last matched vhost
+ apache::site { "erro":
+ source => true,
+ docroot => '/var/www/erro',
+ filename => 'zzz-erro',
+ }
+
+ # Index page for erro
+ file { "/var/www/erro/index.html":
+ ensure => "${apache_www_folder}/index.html",
+ owner => "root",
+ group => "root",
+ force => true,
+ require => File["/var/www/erro"],
+ }
+
+ # TODO: this is temporary: remove when all nodes have applied it
+ file { "/var/www/erro/missing.html":
+ ensure => absent,
+ require => File["/var/www/erro"],
+ }
+}
+
+class websites::hosting inherits websites::setup {
+ # Include the needed classes for website hosting
+ include drupal
+ include gitweb
+ include trac
+ include websvn
+ include moin
+ include ikiwiki
+ include pmwiki
+}
+
+class websites::admin inherits websites::setup {
+ # Include the needed classes for admin interfaces
+ include trac
+ include gitweb
+}