Teach osqa about site aliases
authorGrant Slater <git@firefishy.com>
Sat, 4 Aug 2018 13:17:45 +0000 (14:17 +0100)
committerGrant Slater <git@firefishy.com>
Sat, 4 Aug 2018 13:17:45 +0000 (14:17 +0100)
cookbooks/osqa/recipes/default.rb
cookbooks/osqa/templates/default/apache.erb
roles/osqa.rb

index a886fe6f48be46736eff216152c9cf771f9cc546..e70378aed88ad7bb09580cc09824cfdb4f0b6b3b 100644 (file)
@@ -38,6 +38,7 @@ apache_module "wsgi"
 
 node[:osqa][:sites].each do |site|
   site_name = site[:name]
+  site_aliases = site[:aliases] || []
   directory = site[:directory] || "/srv/#{site_name}"
   site_user = site[:user] || node[:osqa][:user]
   site_user = Etc.getpwuid(site_user).name if site_user.is_a?(Integer)
@@ -49,14 +50,14 @@ node[:osqa][:sites].each do |site|
   backup_name = site[:backup]
 
   ssl_certificate site_name do
-    domains site_name
+    domains [site_name] + site_aliases
     notifies :reload, "service[apache2]"
   end
 
   apache_site site_name do
     template "apache.erb"
     directory directory
-    variables :user => site_user, :group => site_group
+    variables :user => site_user, :group => site_group, :aliases => site_aliases
   end
 
   directory directory do
index 71ae69b7bd176b73c8719ec5d2c68fcfd541a31e..546067b56c60acfec964524bad7296cd60790f01 100644 (file)
@@ -4,6 +4,9 @@ WSGIDaemonProcess <%= @name %> user=<%= @user %> group=<%= @group %> processes=4
 
 <VirtualHost *:80>
         ServerName <%= @name %>
+        <% @aliases.each do |alias_name| -%>
+                ServerAlias <%= alias_name %>
+        <% end -%>
         ServerAdmin webmaster@openstreetmap.org
 
         CustomLog /var/log/apache2/<%= @name %>-access.log combined
@@ -12,6 +15,25 @@ WSGIDaemonProcess <%= @name %> user=<%= @user %> group=<%= @group %> processes=4
         RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
         RedirectPermanent / https://<%= @name %>/
 </VirtualHost>
+<% unless @aliases.empty? -%>
+
+<VirtualHost *:443>
+        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
+
+        CustomLog /var/log/apache2/<%= @name %>-access.log combined
+        ErrorLog /var/log/apache2/<%= @name %>-error.log
+
+        RedirectPermanent / https://<%= @name %>/
+</VirtualHost>
+<% end -%>
 
 <VirtualHost *:443>
         ServerName <%= @name %>
index 1abaf1fb521d2ad8ce37d47fa826ae0be5d4b545..da7036fe05214fc3b7f592ffe7953a446b38664b 100644 (file)
@@ -9,7 +9,9 @@ default_attributes(
   },
   :osqa => {
     :sites => [
-      { :name => "help.openstreetmap.org", :backup => "osqa" }
+      { :name => "help.openstreetmap.org",
+        :aliases => ["help.osm.org"],
+        :backup => "osqa" }
     ]
   }
 )