From 9ea48dbd10bd416e75abfb8fc10eb1b1c8f11842 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 17 Mar 2019 10:48:11 +0000 Subject: [PATCH] Add support for configuring rails using settings.local.yml --- cookbooks/web/recipes/backend.rb | 3 +- cookbooks/web/recipes/frontend.rb | 3 +- cookbooks/web/resources/rails_port.rb | 56 ++++++++++++++++++- .../web/templates/default/apache.backend.erb | 1 + .../web/templates/default/apache.frontend.erb | 1 + 5 files changed, 60 insertions(+), 4 deletions(-) diff --git a/cookbooks/web/recipes/backend.rb b/cookbooks/web/recipes/backend.rb index 0bc88cea7..69fb018d8 100644 --- a/cookbooks/web/recipes/backend.rb +++ b/cookbooks/web/recipes/backend.rb @@ -36,7 +36,8 @@ end apache_site "www.openstreetmap.org" do template "apache.backend.erb" - variables :secret_key_base => web_passwords["secret_key_base"] + variables :status => node[:web][:status], + :secret_key_base => web_passwords["secret_key_base"] end node.normal[:memcached][:ip_address] = node.internal_ipaddress diff --git a/cookbooks/web/recipes/frontend.rb b/cookbooks/web/recipes/frontend.rb index b2ba01832..71a7c4384 100644 --- a/cookbooks/web/recipes/frontend.rb +++ b/cookbooks/web/recipes/frontend.rb @@ -38,7 +38,8 @@ end apache_site "www.openstreetmap.org" do template "apache.frontend.erb" - variables :secret_key_base => web_passwords["secret_key_base"] + variables :status => node[:web][:status], + :secret_key_base => web_passwords["secret_key_base"] end template "/etc/logrotate.d/apache2" do diff --git a/cookbooks/web/resources/rails_port.rb b/cookbooks/web/resources/rails_port.rb index 412d02dae..e3276da2c 100644 --- a/cookbooks/web/resources/rails_port.rb +++ b/cookbooks/web/resources/rails_port.rb @@ -61,8 +61,6 @@ property :github_auth_id, String property :github_auth_secret, String property :wikipedia_auth_id, String property :wikipedia_auth_secret, String -property :mapquest_key, String -property :mapzen_valhalla_key, String property :thunderforest_key, String property :totp_key, String property :csp_enforce, [TrueClass, FalseClass], :default => false @@ -278,6 +276,7 @@ action :create do end file "#{rails_directory}/config/application.yml" do + action(lazy { File.exist?("#{rails_directory}/config/example.application.yml") ? :create : :delete }) owner new_resource.user group new_resource.group mode 0o664 @@ -285,6 +284,59 @@ action :create do notifies :run, "execute[#{rails_directory}/public/assets]" end + settings = new_resource.slice( + "email_from", + "status", + "messages_domain", + "attachments_dir", + "log_path", + "logstash_path", + "memcache_servers", + "potlatch2_key", + "id_key", + "oauth_key", + "nominatim_url", + "osrm_url", + "google_auth_id", + "google_auth_secret", + "google_openid_realm", + "facebook_auth_id", + "facebook_auth_secret", + "windowslive_auth_id", + "windowslive_auth_secret", + "github_auth_id", + "gihub_auth_secret", + "wikipedia_auth_id", + "wikipedia_auth_secret", + "thunderforest_key", + "totp_key", + "csp_enforce", + "csp_report_url" + ).merge( + "server_protocol" => "https", + "server" => new_resource.site, + "publisher_url" => "https://plus.google.com/111953119785824514010", + "support_email" => "support@openstreetmap.org", + "email_return_path" => "bounces@openstreetmap.org", + "geonames_username" => "openstreetmap", + "geoip_database" => "/usr/share/GeoIP/GeoIPv6.dat", + "trace_use_job_queue" => false + ) + + if new_resource.gpx_dir + settings["gpx_trace_dir"] = "#{new_resource.gpx_dir}/traces" + settings["gpx_image_dir"] = "#{new_resource.gpx_dir}/images" + end + + file "#{rails_directory}/config/settings.local.yml" do + owner new_resource.user + group new_resource.group + mode 0o664 + content YAML.dump(settings) + notifies :run, "execute[#{rails_directory}/public/assets]" + only_if { File.exist?("#{rails_directory}/config/settings.yml") } + end + if new_resource.piwik_configuration file "#{rails_directory}/config/piwik.yml" do owner new_resource.user diff --git a/cookbooks/web/templates/default/apache.backend.erb b/cookbooks/web/templates/default/apache.backend.erb index 467dd4556..6ce83af6c 100644 --- a/cookbooks/web/templates/default/apache.backend.erb +++ b/cookbooks/web/templates/default/apache.backend.erb @@ -41,6 +41,7 @@ PassengerMaxRequests 500 PassengerPreStart https://www.openstreetmap.org/ PassengerAppGroupName rails + SetEnv OPENSTREETMAP_STATUS <%= @status %> SetEnv SECRET_KEY_BASE <%= @secret_key_base %> # diff --git a/cookbooks/web/templates/default/apache.frontend.erb b/cookbooks/web/templates/default/apache.frontend.erb index 51d43a394..34ef0497a 100644 --- a/cookbooks/web/templates/default/apache.frontend.erb +++ b/cookbooks/web/templates/default/apache.frontend.erb @@ -159,6 +159,7 @@ PassengerMaxRequestQueueSize 250 PassengerPreStart https://www.openstreetmap.org/ PassengerAppGroupName rails + SetEnv OPENSTREETMAP_STATUS <%= @status %> SetEnv SECRET_KEY_BASE <%= @secret_key_base %> Alias /favicon.ico <%= node[:web][:base_directory] %>/rails/app/assets/favicons/favicon.ico Alias /openlayers <%= node[:web][:base_directory] %>/rails/vendor/assets/openlayers -- 2.39.5