Teach otrs about site aliases
authorGrant Slater <git@firefishy.com>
Sat, 4 Aug 2018 22:55:59 +0000 (23:55 +0100)
committerGrant Slater <git@firefishy.com>
Sat, 4 Aug 2018 22:55:59 +0000 (23:55 +0100)
cookbooks/otrs/recipes/default.rb
cookbooks/otrs/templates/default/apache.erb
roles/otrs.rb

index c71c920c61274167d4244bc05e5eb1e444a79058..ab7093ea98452f9d8790018e6838659c8edda6a5 100644 (file)
@@ -47,6 +47,7 @@ database_name = node[:otrs][:database_name]
 database_user = node[:otrs][:database_user]
 database_password = passwords[node[:otrs][:database_password]]
 site = node[:otrs][:site]
 database_user = node[:otrs][:database_user]
 database_password = passwords[node[:otrs][:database_password]]
 site = node[:otrs][:site]
+site_aliases = node[:otrs][:site_aliases] || []
 
 postgresql_user database_user do
   cluster database_cluster
 
 postgresql_user database_user do
   cluster database_cluster
@@ -130,12 +131,13 @@ Dir.glob("/opt/otrs/var/cron/*.dist") do |distname|
 end
 
 ssl_certificate site do
 end
 
 ssl_certificate site do
-  domains site
+  domains [site] + site_aliases
   notifies :reload, "service[apache2]"
 end
 
 apache_site site do
   template "apache.erb"
   notifies :reload, "service[apache2]"
 end
 
 apache_site site do
   template "apache.erb"
+  variables :aliases => site_aliases
 end
 
 template "/etc/sudoers.d/otrs" do
 end
 
 template "/etc/sudoers.d/otrs" do
index e392d87652d6346a23175dc26dbf0e732b2c7605..4018c36a187510795edee0f326f943ec4130f30d 100644 (file)
@@ -1,72 +1,94 @@
 # DO NOT EDIT - This file is being maintained by Chef
 
 <VirtualHost *:80>
 # DO NOT EDIT - This file is being maintained by Chef
 
 <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://otrs.openstreetmap.org/
+  RedirectPermanent /.well-known/acme-challenge/ http://acme.openstreetmap.org/.well-known/acme-challenge/
+  RedirectPermanent / https://otrs.openstreetmap.org/
 </VirtualHost>
 </VirtualHost>
+<% unless @aliases.empty? -%>
 
 <VirtualHost *:443>
 
 <VirtualHost *:443>
-        ServerName <%= @name %>
-        ServerAdmin webmaster@openstreetmap.org
-
-        CustomLog /var/log/apache2/<%= @name %>-access.log combined
-        ErrorLog /var/log/apache2/<%= @name %>-error.log
-
-        SSLEngine on
-        SSLCertificateFile /etc/ssl/certs/<%= @name %>.pem
-        SSLCertificateKeyFile /etc/ssl/private/<%= @name %>.key
-
-        ScriptAlias /otrs/ /opt/otrs/bin/cgi-bin/
-        Alias /otrs-web/ /opt/otrs/var/httpd/htdocs/
-        RedirectMatch ^/$ /otrs/index.pl
-
-        PerlRequire /opt/otrs/scripts/apache2-perl-startup.pl
-
-        PerlModule Apache2::Reload
-        PerlInitHandler Apache2::Reload
-        PerlModule Apache2::RequestRec
-
-        <Location /otrs>
-                ErrorDocument 403 /otrs/index.pl
-                ErrorDocument 404 /otrs/index.pl
-                SetHandler  perl-script
-                PerlResponseHandler ModPerl::Registry
-                Options +ExecCGI
-                PerlOptions +ParseHeaders
-                PerlOptions +SetupEnv
-                Require all granted
-        </Location>
-
-        <Location /otrs/nph-genericinterface.pl>
-                PerlOptions -ParseHeaders
-        </Location>
+  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>
 </VirtualHost>
+<% end -%>
 
 
-<Directory /opt/otrs/bin/cgi-bin>
-        AllowOverride None
-        Options +ExecCGI -Includes
-        Require all granted
-</Directory>
+<VirtualHost *:443>
+  ServerName <%= @name %>
+  ServerAdmin webmaster@openstreetmap.org
 
 
-<Directory /opt/otrs/var/httpd/htdocs>
-        AllowOverride None
-        Require all granted
-</Directory>
+  CustomLog /var/log/apache2/<%= @name %>-access.log combined
+  ErrorLog /var/log/apache2/<%= @name %>-error.log
 
 
-<Directory /opt/otrs/var/httpd/htdocs/skins/*/*/css-cache>
-        <FilesMatch "\.(css|CSS)$">
-                Header set Cache-Control "max-age=2592000 must-revalidate"
-        </FilesMatch>
-</Directory>
+  SSLEngine on
+  SSLCertificateFile /etc/ssl/certs/<%= @name %>.pem
+  SSLCertificateKeyFile /etc/ssl/private/<%= @name %>.key
+
+  ScriptAlias /otrs/ /opt/otrs/bin/cgi-bin/
+  Alias /otrs-web/ /opt/otrs/var/httpd/htdocs/
+  RedirectMatch ^/$ /otrs/index.pl
+
+  PerlRequire /opt/otrs/scripts/apache2-perl-startup.pl
+
+  PerlModule Apache2::Reload
+  PerlInitHandler Apache2::Reload
+  PerlModule Apache2::RequestRec
+
+  <Location /otrs>
+    ErrorDocument 403 /otrs/index.pl
+    ErrorDocument 404 /otrs/index.pl
+    SetHandler  perl-script
+    PerlResponseHandler ModPerl::Registry
+    Options +ExecCGI
+    PerlOptions +ParseHeaders
+    PerlOptions +SetupEnv
+    Require all granted
+  </Location>
+
+  <Location /otrs/nph-genericinterface.pl>
+    PerlOptions -ParseHeaders
+  </Location>
+</VirtualHost>
+
+  <Directory /opt/otrs/bin/cgi-bin>
+    AllowOverride None
+    Options +ExecCGI -Includes
+    Require all granted
+  </Directory>
+
+  <Directory /opt/otrs/var/httpd/htdocs>
+    AllowOverride None
+    Require all granted
+  </Directory>
+
+  <Directory /opt/otrs/var/httpd/htdocs/skins/*/*/css-cache>
+    <FilesMatch "\.(css|CSS)$">
+      Header set Cache-Control "max-age=2592000 must-revalidate"
+    </FilesMatch>
+  </Directory>
 
 
-<Directory /opt/otrs/var/httpd/htdocs/js/js-cache>
-        <FilesMatch "\.(js|JS)$">
-                Header set Cache-Control "max-age=2592000 must-revalidate"
-        </FilesMatch>
+  <Directory /opt/otrs/var/httpd/htdocs/js/js-cache>
+    <FilesMatch "\.(js|JS)$">
+      Header set Cache-Control "max-age=2592000 must-revalidate"
+    </FilesMatch>
 </Directory>
 </Directory>
index 19d6307714988ce3377eb3173fad6b2780862ac7..c44a42e7c017d3452be3088f7f5562561767122f 100644 (file)
@@ -46,6 +46,7 @@ default_attributes(
   },
   :otrs => {
     :site => "otrs.openstreetmap.org",
   },
   :otrs => {
     :site => "otrs.openstreetmap.org",
+    :site_aliases => ["otrs.osm.org"],
     :database_cluster => "10/main",
     :database_name => "otrs",
     :database_user => "otrs",
     :database_cluster => "10/main",
     :database_name => "otrs",
     :database_user => "otrs",