include_recipe "postgresql"
+postgresql_version = node[:nominatim][:dbcluster].split("/").first
+
package "postgis"
+package "postgresql-#{postgresql_version}-postgis-2.3"
node[:nominatim][:dbadmins].each do |user|
postgresql_user user do
enable_submodules true
user "nominatim"
group "nominatim"
+ not_if { node[:nominatim][:state] != "slave" && File.exist?("#{source_directory}/README.md") }
notifies :run, "execute[compile_nominatim]", :immediately
end
owner "root"
group "root"
mode "0644"
- variables :bin_directory => "#{source_directory}/utils", :mailto => email_errors
+ variables :bin_directory => "#{source_directory}/utils",
+ :mailto => email_errors,
+ :update_maintenance_trigger => "#{basedir}/status/update_maintenance"
end
template "#{source_directory}/utils/nominatim-update" do
:srcdir => source_directory,
:logfile => "#{node[:nominatim][:logdir]}/update.log",
:branch => node[:nominatim][:revision],
- :update_stop_file => "#{basedir}/status/updates_disabled"
+ :update_stop_file => "#{basedir}/status/updates_disabled",
+ :update_maintenance_trigger => "#{basedir}/status/update_maintenance"
end
template "/etc/init.d/nominatim-update" do
variables :source_directory => source_directory
end
-%w(backup-nominatim vacuum-db-nominatim).each do |fname|
+%w[backup-nominatim vacuum-db-nominatim].each do |fname|
template "/usr/local/bin/#{fname}" do
source "#{fname}.erb"
owner "root"
package "php-pgsql"
package "php-pear"
package "php-db"
+package "php-intl"
apache_module "rewrite"
apache_module "proxy"
apache_module "proxy_fcgi"
apache_module "proxy_http"
apache_module "headers"
-apache_module "reqtimeout"
service "php7.0-fpm" do
action [:enable, :start]
mode 0o644
end
-include_recipe "fail2ban"
-
-web_servers = search(:node, "recipes:web\\:\\:frontend").collect do |n| # ~FC010
- n.ipaddresses(:role => :external)
-end.flatten
-
-fail2ban_filter "nominatim" do
- failregex '^<HOST> - - \[\] "[^"]+" (408|429) '
-end
-
-fail2ban_jail "nominatim" do
- filter "nominatim"
- logpath "/var/log/apache2/nominatim.openstreetmap.org-access.log"
- ports [80, 443]
- maxretry 100
- ignoreips web_servers
-end
-
munin_plugin_conf "nominatim" do
template "munin.erb"
variables :db => node[:nominatim][:dbname],