X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/82a93228e941e4140c852b125e611e17d8cd69c8..f8615415d66741ec7ad5aa2b9d23272f10e2b1a2:/cookbooks/tile/recipes/default.rb diff --git a/cookbooks/tile/recipes/default.rb b/cookbooks/tile/recipes/default.rb index 40486dac6..6d58bf806 100644 --- a/cookbooks/tile/recipes/default.rb +++ b/cookbooks/tile/recipes/default.rb @@ -20,7 +20,6 @@ include_recipe "accounts" include_recipe "apache" include_recipe "git" -include_recipe "munin" include_recipe "nodejs" include_recipe "postgresql" include_recipe "prometheus" @@ -100,18 +99,23 @@ tile_directories = node[:tile][:styles].collect do |_, style| style[:tile_directories].collect { |directory| directory[:name] } end.flatten.sort.uniq -package "renderd" +package %w[ + renderd + libgoogle-perftools4 +] systemd_service "renderd" do dropin "chef" after "postgresql.service" wants "postgresql.service" + environment "LD_PRELOAD" => "libtcmalloc.so.4" limit_nofile 4096 memory_high "80%" memory_max "90%" sandbox true restrict_address_families "AF_UNIX" read_write_paths tile_directories + system_call_filter ["@system-service", "mincore"] restart "on-failure" end @@ -155,14 +159,11 @@ end package %w[ python3-cairo python3-mapnik + python3-pyotp python3-pyproj python3-setuptools ] -python_package "pyotp" do - python_version "3" -end - directory "/srv/tile.openstreetmap.org/cgi-bin" do owner "tile" group "tile" @@ -282,6 +283,8 @@ end nodejs_package "carto" +lowzoom_threads = node.cpu_cores - 1 + systemd_service "update-lowzoom@" do description "Low zoom tile update service for %i layer" user "tile" @@ -312,7 +315,7 @@ node[:tile][:styles].each do |name, details| owner "root" group "root" mode "755" - variables :style => name + variables :style => name, :threads => lowzoom_threads end service "update-lowzoom@#{name}" do @@ -483,11 +486,6 @@ if node[:tile][:database][:external_data_script] end end -postgresql_munin "gis" do - cluster node[:tile][:database][:cluster] - database "gis" -end - directory File.dirname(node[:tile][:database][:node_file]) do owner "root" group "root" @@ -507,18 +505,29 @@ directory "/var/log/tile" do mode "755" end +apt_preference "osm2pgsql" do + action :remove +end + package %w[ osm2pgsql osmium-tool pyosmium ] -directory "/var/lib/replicate" do +directory node[:tile][:replication][:directory] do owner "tile" group "tile" mode "755" end +link "/var/lib/replicate" do + to node[:tile][:replication][:directory] + owner "tile" + group "tile" + not_if { node[:tile][:replication][:directory] == "/var/lib/replicate" } +end + template "/usr/local/bin/expire-tiles" do source "expire-tiles.erb" owner "root" @@ -569,17 +578,6 @@ template "/usr/local/bin/replicate-post" do mode "755" end -osm2pgsql_arguments = %w[ - --number-processes=1 - --log-progress=false - --expire-tiles=13-19 - --expire-output=/var/lib/replicate/dirty-tiles.txt - ] - -osm2pgsql_arguments.append("--multi-geometry") if node[:tile][:database][:multi_geometry] -osm2pgsql_arguments.append("--hstore") if node[:tile][:database][:hstore] -osm2pgsql_arguments.append("--tag-transform-script=#{node[:tile][:database][:tag_transform_script]}") if node[:tile][:database][:tag_transform_script] - systemd_service "replicate" do description "Rendering database replication service" after "postgresql.service" @@ -606,6 +604,7 @@ template "/usr/local/bin/render-lowzoom" do owner "root" group "root" mode "755" + variables :threads => lowzoom_threads end systemd_service "render-lowzoom" do @@ -620,7 +619,7 @@ end systemd_timer "render-lowzoom" do description "Render low zoom tiles" - on_calendar "Fri *-*-* 23:00:00 UTC" + on_calendar "23:00 #{node[:timezone]}" end service "render-lowzoom.timer" do @@ -661,19 +660,6 @@ tile_directories.each do |directory| end end -munin_plugin "mod_tile_fresh" -munin_plugin "mod_tile_latency" -munin_plugin "mod_tile_response" -munin_plugin "mod_tile_zoom" - -munin_plugin "renderd_processed" -munin_plugin "renderd_queue" -munin_plugin "renderd_queue_time" -munin_plugin "renderd_zoom" -munin_plugin "renderd_zoom_time" - -munin_plugin "replication_delay" - package "ruby-webrick" prometheus_exporter "modtile" do