]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/planet/recipes/default.rb
Improve error handling in API statistics daemon
[chef.git] / cookbooks / planet / recipes / default.rb
index 0f050ee7d9c2467e5421c6f8ed7a32cded8ff55d..4dbd51a7da37e46b6aca4d288cdc85cc905ff4cd 100644 (file)
@@ -1,14 +1,14 @@
 #
 #
-# Cookbook Name:: planet
+# Cookbook:: planet
 # Recipe:: default
 #
 # Recipe:: default
 #
-# Copyright 2011, OpenStreetMap Foundation
+# Copyright:: 2011, OpenStreetMap Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
 #
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # 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,
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # limitations under the License.
 #
 
 # limitations under the License.
 #
 
-include_recipe "apache::ssl"
+include_recipe "accounts"
+include_recipe "apache"
+include_recipe "munin"
 
 
-package "perl"
-package "php5-cli"
-package "pbzip2"
-package "osmosis"
+package %w[
+  perl
+  php-cli
+]
 
 
-template "/etc/cron.d/planet" do
-  source "cron.erb"
-  owner "root"
-  group "root"
-  mode 0644
-end
-
-remote_directory "/store/planet" do
+remote_directory "/store/planet#html" do
+  path "/store/planet"
   source "html"
   owner "root"
   group "root"
   mode "0755"
   files_owner "root"
   files_group "root"
   source "html"
   owner "root"
   group "root"
   mode "0755"
   files_owner "root"
   files_group "root"
-  files_mode 0644
+  files_mode "644"
 end
 
 end
 
-remote_directory "/store/planet" do
+remote_directory "/store/planet#cgi" do
+  path "/store/planet"
   source "cgi"
   owner "root"
   group "root"
   source "cgi"
   owner "root"
   group "root"
-  mode 0755
+  mode "755"
   files_owner "root"
   files_group "root"
   files_owner "root"
   files_group "root"
-  files_mode 0755
+  files_mode "755"
 end
 
 remote_directory node[:planet][:dump][:xml_history_directory] do
   source "history_cgi"
   owner "www-data"
   group "planet"
 end
 
 remote_directory node[:planet][:dump][:xml_history_directory] do
   source "history_cgi"
   owner "www-data"
   group "planet"
-  mode 0755
-  files_owner "www-data"
-  files_group "planet"
-  files_mode 0755
+  mode "775"
+  files_owner "root"
+  files_group "root"
+  files_mode "755"
+end
+
+remote_directory "/store/planet/cc-by-sa" do
+  source "ccbysa_cgi"
+  owner "www-data"
+  group "planet"
+  mode "775"
+  files_owner "root"
+  files_group "root"
+  files_mode "755"
+end
+
+remote_directory "/store/planet/cc-by-sa/full-experimental" do
+  source "ccbysa_history_cgi"
+  owner "www-data"
+  group "planet"
+  mode "775"
+  files_owner "root"
+  files_group "root"
+  files_mode "755"
 end
 
 [:xml_directory, :xml_history_directory,
 end
 
 [:xml_directory, :xml_history_directory,
@@ -66,18 +83,39 @@ end
   directory node[:planet][:dump][dir] do
     owner "www-data"
     group "planet"
   directory node[:planet][:dump][dir] do
     owner "www-data"
     group "planet"
-    mode 0775
+    mode "775"
   end
 end
 
 directory "/store/planet/notes" do
   owner "www-data"
   group "planet"
   end
 end
 
 directory "/store/planet/notes" do
   owner "www-data"
   group "planet"
-  mode 0775
+  mode "775"
 end
 
 end
 
+directory "/store/planet/statistics" do
+  owner "www-data"
+  group "planet"
+  mode "775"
+end
+
+template "/usr/local/bin/apache-latest-planet-filename" do
+  source "apache-latest-planet-filename.erb"
+  owner "root"
+  group "root"
+  mode "755"
+  notifies :restart, "service[apache2]"
+end
+
+apache_module "cgid"
 apache_module "rewrite"
 apache_module "proxy_http"
 apache_module "rewrite"
 apache_module "proxy_http"
+apache_module "ratelimit"
+
+ssl_certificate "planet.openstreetmap.org" do
+  domains ["planet.openstreetmap.org", "planet.osm.org"]
+  notifies :reload, "service[apache2]"
+end
 
 apache_site "planet.openstreetmap.org" do
   template "apache.erb"
 
 apache_site "planet.openstreetmap.org" do
   template "apache.erb"
@@ -87,5 +125,34 @@ template "/etc/logrotate.d/apache2" do
   source "logrotate.apache.erb"
   owner "root"
   group "root"
   source "logrotate.apache.erb"
   owner "root"
   group "root"
-  mode 0644
+  mode "644"
+end
+
+munin_plugin "planet_age"
+
+template "/usr/local/bin/planet-file-cleanup" do
+  source "planet-file-cleanup.erb"
+  owner "root"
+  group "root"
+  mode "755"
+end
+
+systemd_service "planet-file-cleanup" do
+  description "Cleanup old planet files"
+  exec_start "/usr/local/bin/planet-file-cleanup --debug"
+  user "www-data"
+  sandbox true
+  read_write_paths [
+    node[:planet][:dump][:xml_directory],
+    node[:planet][:dump][:pbf_directory]
+  ]
+end
+
+systemd_timer "planet-file-cleanup" do
+  description "Cleanup old planet files"
+  on_calendar "Mon *-*-1..7 03:44"
+end
+
+service "planet-file-cleanup.timer" do
+  action [:enable, :start]
 end
 end