]> gitweb.fluxo.info Git - puppet-nodo.git/commitdiff
Adding websites' classes and enhancing nodo::master
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 7 Feb 2010 17:35:34 +0000 (15:35 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 7 Feb 2010 17:35:34 +0000 (15:35 -0200)
manifests/init.pp
manifests/websites.pp [new file with mode: 0644]

index 36c7413410957b595a8f0755f0c4ae39befbf623..8618042909b61cda083c72d860ba6eca57122b69 100644 (file)
@@ -12,6 +12,7 @@ import "sysctl.pp"
 import "ups.pp"
 import "utils.pp"
 import "database.pp"
+import "websites.pp"
 
 class nodo {
   include lsb
@@ -379,7 +380,7 @@ class nodo::master {
   include nodo::vserver
   include database
   include gitosis
-  include trac
+  include websites::admin
   # TODO:
   #include munin::host
 
@@ -389,6 +390,15 @@ class nodo::master {
     alias  => ["puppet.$domain"],
   }
 
+  case $puppetmaster_db_password {
+    '': { fail("Please set \$puppetmaster_db_password in your host config") }
+  }
+
+  # update master's puppet.conf if you change here
+  database::instance { "puppet":
+    password => "$puppetmaster_db_password",
+  }
+
   backupninja::mysql { "all_databases":
        backupdir => '/var/backups/mysql',
        compress  => true,
diff --git a/manifests/websites.pp b/manifests/websites.pp
new file mode 100644 (file)
index 0000000..34475dd
--- /dev/null
@@ -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
+}