Teach trac cookbook about site aliases
authorGrant Slater <git@firefishy.com>
Sat, 4 Aug 2018 15:20:04 +0000 (16:20 +0100)
committerGrant Slater <git@firefishy.com>
Sat, 4 Aug 2018 15:20:04 +0000 (16:20 +0100)
cookbooks/trac/recipes/default.rb
cookbooks/trac/templates/default/apache.erb

index 0d08e32..4f55260 100644 (file)
@@ -74,14 +74,14 @@ end
 apache_module "wsgi"
 
 ssl_certificate "trac.openstreetmap.org" do
-  domains "trac.openstreetmap.org"
+  domains ["trac.openstreetmap.org", "trac.osm.org"]
   notifies :reload, "service[apache2]"
 end
 
 apache_site site_name do
   template "apache.erb"
   directory site_directory
-  variables :user => "trac", :group => "trac"
+  variables :user => "trac", :group => "trac", :aliases => ["trac.osm.org"]
 end
 
 template "/etc/sudoers.d/trac" do
index ad9429b..bc58ed2 100644 (file)
@@ -3,48 +3,70 @@
 WSGIDaemonProcess <%= @name %> user=<%= @user %> group=<%= @group %> maximum-requests=5000 threads=25 inactivity-timeout=180
 
 <VirtualHost *:80>
-        ServerName <%= @name %>
-        ServerAdmin webmaster@openstreetmap.org
+  ServerName <%= @name %>
+<% @aliases.each do |alias_name| -%>
+  ServerAlias <%= alias_name %>
+<% end -%>
+  ServerAdmin webmaster@openstreetmap.org
 
-        CustomLog /var/log/apache2/<%= @name %>-access.log combined
-        ErrorLog /var/log/apache2/<%= @name %>-error.log
+  CustomLog /var/log/apache2/<%= @name %>-access.log combined
+  ErrorLog /var/log/apache2/<%= @name %>-error.log
 
-        RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
-        RedirectPermanent / https://<%= @name %>/
+  RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
+  RedirectPermanent / https://<%= @name %>/
 </VirtualHost>
+<% unless @aliases.empty? -%>
 
 <VirtualHost *:443>
-        ServerName <%= @name %>
-        ServerAdmin webmaster@openstreetmap.org
+  ServerName <%= @aliases.first %>
+<% @aliases.drop(1).each do |alias_name| -%>
+  ServerAlias <%= alias_name %>
+<% end -%>
+  ServerAdmin webmaster@openstreetmap.org
 
-        SSLEngine on
-        SSLCertificateFile /etc/ssl/certs/<%= @name %>.pem
-        SSLCertificateKeyFile /etc/ssl/private/<%= @name %>.key
+  SSLEngine on
+  SSLCertificateFile /etc/ssl/certs/<%= @name %>.pem
+  SSLCertificateKeyFile /etc/ssl/private/<%= @name %>.key
 
-        CustomLog /var/log/apache2/<%= @name %>-access.log combined
-        ErrorLog /var/log/apache2/<%= @name %>-error.log
+  CustomLog /var/log/apache2/<%= @name %>-access.log combined
+  ErrorLog /var/log/apache2/<%= @name %>-error.log
 
-        DocumentRoot <%= @directory %>/htdocs
-       Alias /robots.txt <%= @directory %>/htdocs/site/robots.txt
-        WSGIScriptAlias / <%= @directory %>/cgi-bin/trac.wsgi
+  RedirectPermanent / https://<%= @name %>/
+</VirtualHost>
+<% end -%>
+
+<VirtualHost *:443>
+  ServerName <%= @name %>
+  ServerAdmin webmaster@openstreetmap.org
+
+  SSLEngine on
+  SSLCertificateFile /etc/ssl/certs/<%= @name %>.pem
+  SSLCertificateKeyFile /etc/ssl/private/<%= @name %>.key
+
+  CustomLog /var/log/apache2/<%= @name %>-access.log combined
+  ErrorLog /var/log/apache2/<%= @name %>-error.log
+
+  DocumentRoot <%= @directory %>/htdocs
+  Alias /robots.txt <%= @directory %>/htdocs/site/robots.txt
+  WSGIScriptAlias / <%= @directory %>/cgi-bin/trac.wsgi
 
-        WSGIProcessGroup <%= @name %>
+  WSGIProcessGroup <%= @name %>
 
-       DefineExternalAuth osm pipe /usr/local/bin/trac-authenticate
+  DefineExternalAuth osm pipe /usr/local/bin/trac-authenticate
 
-       <Location /login>
-               AuthType Basic
-               AuthName "OpenStreetMap Trac"
-               AuthBasicProvider external
-               AuthExternal osm
-               Require valid-user
-       </Location>
+  <Location /login>
+    AuthType Basic
+    AuthName "OpenStreetMap Trac"
+    AuthBasicProvider external
+    AuthExternal osm
+    Require valid-user
+  </Location>
 </VirtualHost>
 
 <Directory <%= @directory %>/htdocs>
-       Require all granted
+  Require all granted
 </Directory>
 
 <Directory <%= @directory %>/cgi-bin>
-       Require all granted
+  Require all granted
 </Directory>