X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/7b058886e60a6ee9ac09bc07a3bfd3ed048a40a0..cf894718de9117eb4189e78f27e966c3a9b8dc93:/cookbooks/web/resources/rails_port.rb?ds=sidebyside diff --git a/cookbooks/web/resources/rails_port.rb b/cookbooks/web/resources/rails_port.rb index d7f2e012d..778d24ff4 100644 --- a/cookbooks/web/resources/rails_port.rb +++ b/cookbooks/web/resources/rails_port.rb @@ -8,7 +8,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -28,7 +28,7 @@ property :ruby, String, :default => "2.3" property :directory, String property :user, String property :group, String -property :repository, String, :default => "git://git.openstreetmap.org/rails.git" +property :repository, String, :default => "https://git.openstreetmap.org/public/rails.git" property :revision, String, :default => "live" property :run_migrations, [TrueClass, FalseClass], :default => false property :email_from, String, :default => "OpenStreetMap " @@ -65,6 +65,7 @@ property :mapquest_key, String property :mapzen_valhalla_key, String property :thunderforest_key, String property :totp_key, String +property :csp_enforce, [TrueClass, FalseClass], :default => false property :csp_report_url, String property :piwik_configuration, Hash @@ -85,22 +86,30 @@ action :create do libxml2-dev libxslt1-dev libmemcached-dev + libffi-dev + ] + + package %w[ + pngcrush + advancecomp + optipng + pngquant + jhead + jpegoptim + gifsicle + libjpeg-turbo-progs ] gem_package "bundler#{new_resource.ruby}" do package_name "bundler" - version "1.3.5" + version "1.16.2" gem_binary "gem#{new_resource.ruby}" options "--format-executable" end - file "/usr/lib/ruby/1.8/rack.rb" do - action :delete - end - - declare_resource :directory, "/usr/lib/ruby/1.8/rack" do - action :delete - recursive true + gem_package "bundler#{new_resource.ruby}" do + package_name "pkg-config" + gem_binary "gem#{new_resource.ruby}" end declare_resource :directory, rails_directory do @@ -118,7 +127,7 @@ action :create do notifies :run, "execute[#{rails_directory}/Gemfile]" notifies :run, "execute[#{rails_directory}/public/assets]" notifies :delete, "file[#{rails_directory}/public/export/embed.html]" - notifies :run, "execute[#{rails_directory}]" + notifies :restart, "passenger_application[#{rails_directory}]" end declare_resource :directory, "#{rails_directory}/tmp" do @@ -142,7 +151,7 @@ action :create do :name => new_resource.database_name, :username => new_resource.database_username, :password => new_resource.database_password - notifies :run, "execute[#{rails_directory}]" + notifies :restart, "passenger_application[#{rails_directory}]" end application_yml = edit_file "#{rails_directory}/config/example.application.yml" do |line| @@ -154,7 +163,7 @@ action :create do line.gsub!(/^( *)support_email:.*$/, "\\1support_email: \"support@openstreetmap.org\"") if new_resource.email_from - line.gsub!(/^( *)email_from:.*$/, "\\1email_from: \"#{email_from}\"") + line.gsub!(/^( *)email_from:.*$/, "\\1email_from: \"#{new_resource.email_from}\"") end line.gsub!(/^( *)email_return_path:.*$/, "\\1email_return_path: \"bounces@openstreetmap.org\"") @@ -252,6 +261,10 @@ action :create do line.gsub!(/^( *)#totp_key:.*$/, "\\1totp_key: \"#{new_resource.totp_key}\"") end + if new_resource.csp_enforce + line.gsub!(/^( *)csp_enforce:.*$/, "\\1csp_enforce: \"#{new_resource.csp_enforce}\"") + end + if new_resource.csp_report_url line.gsub!(/^( *)#csp_report_url:.*$/, "\\1csp_report_url: \"#{new_resource.csp_report_url}\"") end @@ -293,7 +306,7 @@ action :create do group "root" environment "NOKOGIRI_USE_SYSTEM_LIBRARIES" => "yes" subscribes :run, "gem_package[bundler#{new_resource.ruby}]" - notifies :run, "execute[#{rails_directory}]" + notifies :restart, "passenger_application[#{rails_directory}]" end execute "#{rails_directory}/db/migrate" do @@ -303,7 +316,7 @@ action :create do user new_resource.user group new_resource.group subscribes :run, "git[#{rails_directory}]" - notifies :run, "execute[#{rails_directory}]" + notifies :restart, "passenger_application[#{rails_directory}]" only_if { new_resource.run_migrations } end @@ -314,41 +327,14 @@ action :create do cwd rails_directory user new_resource.user group new_resource.group - notifies :run, "execute[#{rails_directory}]" + notifies :restart, "passenger_application[#{rails_directory}]" end file "#{rails_directory}/public/export/embed.html" do action :nothing end - execute "#{rails_directory}/lib/quad_tile/extconf.rb" do - command "ruby extconf.rb" - cwd "#{rails_directory}/lib/quad_tile" - user new_resource.user - group new_resource.group - not_if do - ::File.exist?("#{rails_directory}/lib/quad_tile/quad_tile_so.so") && - ::File.mtime("#{rails_directory}/lib/quad_tile/quad_tile_so.so") >= ::File.mtime("#{rails_directory}/lib/quad_tile/extconf.rb") && - ::File.mtime("#{rails_directory}/lib/quad_tile/quad_tile_so.so") >= ::File.mtime("#{rails_directory}/lib/quad_tile/quad_tile.c") && - ::File.mtime("#{rails_directory}/lib/quad_tile/quad_tile_so.so") >= ::File.mtime("#{rails_directory}/lib/quad_tile/quad_tile.h") - end - notifies :run, "execute[#{rails_directory}/lib/quad_tile/Makefile]" - end - - execute "#{rails_directory}/lib/quad_tile/Makefile" do - action :nothing - command "make" - cwd "#{rails_directory}/lib/quad_tile" - user new_resource.user - group new_resource.group - notifies :run, "execute[#{rails_directory}]" - end - - execute rails_directory do - action :nothing - command "passenger-config restart-app --ignore-app-not-running #{rails_directory}" - user "root" - group "root" + passenger_application rails_directory do only_if { ::File.exist?("/usr/bin/passenger-config") } end @@ -363,11 +349,8 @@ action :create do end action :restart do - execute rails_directory do - action :run - command "passenger-config restart-app --ignore-app-not-running #{rails_directory}" - user "root" - group "root" + passenger_application rails_directory do + action :restart end end