X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/f7628dac50cd43cd44bb4f7e5c343fe990b5af3f..1bc8da5f3a3bfd6c3f0ba374f12d489d13831460:/cookbooks/tile/recipes/default.rb diff --git a/cookbooks/tile/recipes/default.rb b/cookbooks/tile/recipes/default.rb index 6d58bf806..a41a9f361 100644 --- a/cookbooks/tile/recipes/default.rb +++ b/cookbooks/tile/recipes/default.rb @@ -300,6 +300,72 @@ systemd_service "update-lowzoom@" do restart "on-failure" end +postgresql_version = node[:tile][:database][:cluster].split("/").first +postgis_version = node[:tile][:database][:postgis] + +package "postgresql-#{postgresql_version}-postgis-#{postgis_version}" + +postgresql_user "jburgess" do + cluster node[:tile][:database][:cluster] + superuser true +end + +postgresql_user "tomh" do + cluster node[:tile][:database][:cluster] + superuser true +end + +postgresql_user "pnorman" do + cluster node[:tile][:database][:cluster] + superuser true +end + +postgresql_user "tile" do + cluster node[:tile][:database][:cluster] +end + +postgresql_user "www-data" do + cluster node[:tile][:database][:cluster] +end + +postgresql_user "_renderd" do + cluster node[:tile][:database][:cluster] +end + +postgresql_database "gis" do + cluster node[:tile][:database][:cluster] + owner "tile" +end + +postgresql_extension "postgis" do + cluster node[:tile][:database][:cluster] + database "gis" +end + +postgresql_extension "hstore" do + cluster node[:tile][:database][:cluster] + database "gis" + only_if { node[:tile][:database][:hstore] } +end + +%w[geography_columns planet_osm_nodes planet_osm_rels planet_osm_ways raster_columns raster_overviews].each do |table| + postgresql_table table do + cluster node[:tile][:database][:cluster] + database "gis" + owner "tile" + permissions "tile" => :all + end +end + +%w[geometry_columns planet_osm_line planet_osm_point planet_osm_polygon planet_osm_roads spatial_ref_sys].each do |table| + postgresql_table table do + cluster node[:tile][:database][:cluster] + database "gis" + owner "tile" + permissions "tile" => :all, "www-data" => :select, "_renderd" => :select + end +end + directory "/srv/tile.openstreetmap.org/styles" do owner "tile" group "tile" @@ -383,6 +449,18 @@ node[:tile][:styles].each do |name, details| end end + if details[:functions_script] + postgresql_execute details[:functions_script] do + action :nothing + command details[:functions_script] + cluster node[:tile][:database][:cluster] + database "gis" + user "tile" + group "tile" + subscribes :run, "git[#{style_directory}]" + end + end + execute "#{style_directory}/project.mml" do action :nothing command "carto -a 3.0.22 project.mml > project.xml" @@ -395,72 +473,6 @@ node[:tile][:styles].each do |name, details| end end -postgresql_version = node[:tile][:database][:cluster].split("/").first -postgis_version = node[:tile][:database][:postgis] - -package "postgresql-#{postgresql_version}-postgis-#{postgis_version}" - -postgresql_user "jburgess" do - cluster node[:tile][:database][:cluster] - superuser true -end - -postgresql_user "tomh" do - cluster node[:tile][:database][:cluster] - superuser true -end - -postgresql_user "pnorman" do - cluster node[:tile][:database][:cluster] - superuser true -end - -postgresql_user "tile" do - cluster node[:tile][:database][:cluster] -end - -postgresql_user "www-data" do - cluster node[:tile][:database][:cluster] -end - -postgresql_user "_renderd" do - cluster node[:tile][:database][:cluster] -end - -postgresql_database "gis" do - cluster node[:tile][:database][:cluster] - owner "tile" -end - -postgresql_extension "postgis" do - cluster node[:tile][:database][:cluster] - database "gis" -end - -postgresql_extension "hstore" do - cluster node[:tile][:database][:cluster] - database "gis" - only_if { node[:tile][:database][:hstore] } -end - -%w[geography_columns planet_osm_nodes planet_osm_rels planet_osm_ways raster_columns raster_overviews].each do |table| - postgresql_table table do - cluster node[:tile][:database][:cluster] - database "gis" - owner "tile" - permissions "tile" => :all - end -end - -%w[geometry_columns planet_osm_line planet_osm_point planet_osm_polygon planet_osm_roads spatial_ref_sys].each do |table| - postgresql_table table do - cluster node[:tile][:database][:cluster] - database "gis" - owner "tile" - permissions "tile" => :all, "www-data" => :select, "_renderd" => :select - end -end - package %w[ gdal-bin python3-yaml @@ -505,10 +517,6 @@ directory "/var/log/tile" do mode "755" end -apt_preference "osm2pgsql" do - action :remove -end - package %w[ osm2pgsql osmium-tool @@ -660,7 +668,19 @@ tile_directories.each do |directory| end end -package "ruby-webrick" +package %w[ + ruby-pg + ruby-webrick +] + +prometheus_exporter "osm2pgsql" do + port 10027 + user "tileupdate" + restrict_address_families "AF_UNIX" + options [ + "--database-name=gis" + ] +end prometheus_exporter "modtile" do port 9494