]> git.openstreetmap.org Git - chef.git/blob - cookbooks/planet/recipes/dump.rb
409d100b1eb8189a1f96fcf9632e08be91f30bfe
[chef.git] / cookbooks / planet / recipes / dump.rb
1 #
2 # Cookbook:: planet
3 # Recipe:: dump
4 #
5 # Copyright:: 2013, OpenStreetMap Foundation
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #     https://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 #
19
20 node.default[:incron][:planetdump] = {
21   :user => "root",
22   :path => "/store/backup",
23   :events => %w[IN_CREATE IN_MOVED_TO],
24   :command => "/bin/systemctl start planetdump@$#"
25 }
26
27 include_recipe "git"
28 include_recipe "incron"
29
30 package %w[
31   gcc
32   g++
33   make
34   autoconf
35   automake
36   pkg-config
37   libxml2-dev
38   libboost-dev
39   libboost-program-options-dev
40   libboost-date-time-dev
41   libboost-filesystem-dev
42   libboost-thread-dev
43   libboost-iostreams-dev
44   libosmpbf-dev
45   libprotobuf-dev
46   osmpbf-bin
47   pbzip2
48   php-cli
49   php-curl
50   mktorrent
51 ]
52
53 directory "/opt/planet-dump-ng" do
54   owner "root"
55   group "root"
56   mode "755"
57 end
58
59 git "/opt/planet-dump-ng" do
60   action :sync
61   repository "https://github.com/zerebubuth/planet-dump-ng.git"
62   revision "v1.2.0"
63   depth 1
64   user "root"
65   group "root"
66 end
67
68 execute "/opt/planet-dump-ng/autogen.sh" do
69   action :nothing
70   command "./autogen.sh"
71   cwd "/opt/planet-dump-ng"
72   user "root"
73   group "root"
74   subscribes :run, "git[/opt/planet-dump-ng]"
75 end
76
77 execute "/opt/planet-dump-ng/configure" do
78   action :nothing
79   command "./configure"
80   cwd "/opt/planet-dump-ng"
81   user "root"
82   group "root"
83   subscribes :run, "execute[/opt/planet-dump-ng/autogen.sh]"
84 end
85
86 execute "/opt/planet-dump-ng/Makefile" do
87   action :nothing
88   command "make"
89   cwd "/opt/planet-dump-ng"
90   user "root"
91   group "root"
92   subscribes :run, "execute[/opt/planet-dump-ng/configure]"
93 end
94
95 directory "/store/planetdump" do
96   owner "www-data"
97   group "www-data"
98   mode "755"
99   recursive true
100 end
101
102 %w[planetdump planet-mirror-redirect-update].each do |program|
103   template "/usr/local/bin/#{program}" do
104     source "#{program}.erb"
105     owner "root"
106     group "root"
107     mode "755"
108   end
109 end
110
111 systemd_service "planetdump@" do
112   description "Planet dump for %i"
113   user "www-data"
114   exec_start "/usr/local/bin/planetdump %i"
115   memory_max "64G"
116   private_tmp true
117   private_devices true
118   private_network true
119   protect_system "full"
120   protect_home true
121   no_new_privileges true
122 end
123
124 cron_d "planet-dump-mirror" do
125   minute "*/10"
126   user "www-data"
127   command "/usr/local/bin/planet-mirror-redirect-update"
128   mailto "horntail-www-data-cron@firefishy.com"
129 end