From c107cf7b86ae648420fe5aa7aa80c5fa39b74452 Mon Sep 17 00:00:00 2001 From: Grant Slater Date: Sat, 4 Aug 2018 14:17:45 +0100 Subject: [PATCH] Teach osqa about site aliases --- cookbooks/osqa/recipes/default.rb | 5 +++-- cookbooks/osqa/templates/default/apache.erb | 22 +++++++++++++++++++++ roles/osqa.rb | 4 +++- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/cookbooks/osqa/recipes/default.rb b/cookbooks/osqa/recipes/default.rb index a886fe6f4..e70378aed 100644 --- a/cookbooks/osqa/recipes/default.rb +++ b/cookbooks/osqa/recipes/default.rb @@ -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 diff --git a/cookbooks/osqa/templates/default/apache.erb b/cookbooks/osqa/templates/default/apache.erb index 71ae69b7b..546067b56 100644 --- a/cookbooks/osqa/templates/default/apache.erb +++ b/cookbooks/osqa/templates/default/apache.erb @@ -4,6 +4,9 @@ WSGIDaemonProcess <%= @name %> user=<%= @user %> group=<%= @group %> processes=4 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 %>/ +<% unless @aliases.empty? -%> + + + 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 %>/ + +<% end -%> ServerName <%= @name %> diff --git a/roles/osqa.rb b/roles/osqa.rb index 1abaf1fb5..da7036fe0 100644 --- a/roles/osqa.rb +++ b/roles/osqa.rb @@ -9,7 +9,9 @@ default_attributes( }, :osqa => { :sites => [ - { :name => "help.openstreetmap.org", :backup => "osqa" } + { :name => "help.openstreetmap.org", + :aliases => ["help.osm.org"], + :backup => "osqa" } ] } ) -- 2.43.2