X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/1ece13ea17003cdc2679d8511b258c4b64197d13..26c1386da55af1a0393f5b7762f26f4404c54ac8:/cookbooks/nominatim/recipes/default.rb diff --git a/cookbooks/nominatim/recipes/default.rb b/cookbooks/nominatim/recipes/default.rb index fc6d2e9e3..41e0ec78c 100644 --- a/cookbooks/nominatim/recipes/default.rb +++ b/cookbooks/nominatim/recipes/default.rb @@ -168,13 +168,20 @@ package %w[ python3-pyosmium pyosmium python3-psycopg2 + python3-dotenv + python3-psutil + python3-jinja2 + python3-icu php-pgsql php-intl + php-symfony-dotenv ] source_directory = "#{basedir}/nominatim" build_directory = "#{basedir}/bin" ui_directory = "#{basedir}/ui" +qa_bin_directory = "#{basedir}/Nominatim-Data-Analyser" +qa_data_directory = "#{basedir}/qa-data" directory build_directory do owner "nominatim" @@ -196,7 +203,15 @@ git source_directory do user "nominatim" group "nominatim" not_if { node[:nominatim][:state] != "slave" && File.exist?("#{source_directory}/README.md") } - notifies :run, "execute[compile_nominatim]", :immediately + notifies :run, "execute[compile_nominatim]" +end + +remote_file "#{source_directory}/data/country_osm_grid.sql.gz" do + action :create_if_missing + source "https://www.nominatim.org/data/country_grid.sql.gz" + owner "nominatim" + group "nominatim" + mode "644" end execute "compile_nominatim" do @@ -216,8 +231,8 @@ template "#{source_directory}/.git/hooks/post-merge" do :dbname => node[:nominatim][:dbname] end -template "#{build_directory}/settings/local.php" do - source "settings.erb" +template "#{build_directory}/.env" do + source "nominatim.env.erb" owner "nominatim" group "nominatim" mode "664" @@ -235,7 +250,7 @@ git ui_directory do group "nominatim" end -template "#{ui_directory}/dist/config.js" do +template "#{ui_directory}/dist/theme/config.theme.js" do source "ui-config.js.erb" owner "nominatim" group "nominatim" @@ -257,11 +272,12 @@ end external_data = [ "wikimedia-importance.sql.gz", - "gb_postcode_data.sql.gz" + "gb_postcodes.csv.gz", + "us_postcodes.csv.gz" ] external_data.each do |fname| - remote_file "#{source_directory}/data/#{fname}" do + remote_file "#{build_directory}/#{fname}" do action :create_if_missing source "https://www.nominatim.org/data/#{fname}" owner "nominatim" @@ -270,14 +286,6 @@ external_data.each do |fname| end end -remote_file "#{source_directory}/data/country_osm_grid.sql.gz" do - action :create_if_missing - source "https://www.nominatim.org/data/country_grid.sql.gz" - owner "nominatim" - group "nominatim" - mode "644" -end - if node[:nominatim][:state] == "off" cron_d "nominatim-backup" do action :delete @@ -380,7 +388,7 @@ end end node[:nominatim][:fpm_pools].each do |name, data| - php_fpm name.to_s do + php_fpm name do port data[:port] pm data[:pm] pm_max_children data[:max_children] @@ -388,6 +396,7 @@ node[:nominatim][:fpm_pools].each do |name, data| pm_min_spare_servers 10 pm_max_spare_servers 20 pm_max_requests 10000 + prometheus_port data[:prometheus_port] end end @@ -398,7 +407,8 @@ ssl_certificate node[:fqdn] do "nominatim.openstreetmap.com", "nominatim.openstreetmap.net", "nominatim.openstreetmaps.org", - "nominatim.openmaps.org"] + "nominatim.openmaps.org", + "nominatim.qgis.org"] notifies :reload, "service[nginx]" end @@ -412,7 +422,7 @@ nginx_site "default" do action [:delete] end -frontends = search(:node, "recipes:web\\:\\:frontend") +frontends = search(:node, "recipes:web\\:\\:frontend").sort_by(&:name) nginx_site "nominatim" do template "nginx.erb" @@ -462,6 +472,43 @@ fail2ban_jail "nominatim_limit_req" do filter "nginx-limit-req" logpath "#{node[:nominatim][:logdir]}/nominatim.openstreetmap.org-error.log" ports [80, 443] - maxretry 5 - ignoreips frontend_addresses.flatten + maxretry 20 + ignoreips frontend_addresses.flatten.sort +end + +### QA tile generation + +if node[:nominatim][:enable_qa_tiles] + git qa_bin_directory do + repository node[:nominatim][:qa_repository] + revision node[:nominatim][:qa_revision] + enable_submodules true + user "nominatim" + group "nominatim" + notifies :run, "execute[compile_qa]" + end + + execute "compile_qa" do + action :nothing + user "nominatim" + cwd "#{qa_bin_directory}/clustering-vt" + command "make" + end + + directory qa_data_directory do + owner "nominatim" + group "nominatim" + mode "755" + recursive true + end + + template "#{qa_bin_directory}/analyser/config/config.yaml" do + source "qa_config.erb" + owner "nominatim" + group "nominatim" + mode "755" + variables :outputdir => "#{qa_data_directory}/new" + end + + end