5 # Copyright:: 2011, OpenStreetMap Foundation
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
11 # https://www.apache.org/licenses/LICENSE-2.0
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.
20 include_recipe "db::base"
22 passwords = data_bag_item("db", "passwords")
24 postgresql_user "tomh" do
25 cluster node[:db][:cluster]
29 postgresql_user "matt" do
30 cluster node[:db][:cluster]
34 postgresql_user "openstreetmap" do
35 cluster node[:db][:cluster]
36 password passwords["openstreetmap"]
39 postgresql_user "rails" do
40 cluster node[:db][:cluster]
41 password passwords["rails"]
44 postgresql_user "cgimap" do
45 cluster node[:db][:cluster]
46 password passwords["cgimap"]
49 postgresql_user "planetdump" do
50 cluster node[:db][:cluster]
51 password passwords["planetdump"]
54 postgresql_user "planetdiff" do
55 cluster node[:db][:cluster]
56 password passwords["planetdiff"]
60 postgresql_user "backup" do
61 cluster node[:db][:cluster]
62 password passwords["backup"]
65 postgresql_user "munin" do
66 cluster node[:db][:cluster]
67 password passwords["munin"]
70 postgresql_user "replication" do
71 cluster node[:db][:cluster]
72 password passwords["replication"]
76 postgresql_database "openstreetmap" do
77 cluster node[:db][:cluster]
81 postgresql_extension "btree_gist" do
82 cluster node[:db][:cluster]
83 database "openstreetmap"
84 only_if { node[:postgresql][:clusters][node[:db][:cluster]] && node[:postgresql][:clusters][node[:db][:cluster]][:version] >= 9.0 }
88 active_storage_attachments
90 active_storage_variant_records
98 postgresql_table table do
99 cluster node[:db][:cluster]
100 database "openstreetmap"
101 owner "openstreetmap"
102 permissions "openstreetmap" => [:all],
103 "rails" => [:select, :insert, :update, :delete],
104 "backup" => [:select]
110 changesets_subscribers
113 diary_entry_subscriptions
125 postgresql_table table do
126 cluster node[:db][:cluster]
127 database "openstreetmap"
128 owner "openstreetmap"
129 permissions "openstreetmap" => [:all],
130 "rails" => [:select, :insert, :update, :delete],
131 "backup" => [:select]
139 postgresql_table table do
140 cluster node[:db][:cluster]
141 database "openstreetmap"
142 owner "openstreetmap"
143 permissions "openstreetmap" => [:all],
144 "rails" => [:select, :insert, :update, :delete],
145 "planetdump" => [:select],
146 "backup" => [:select]
154 postgresql_table table do
155 cluster node[:db][:cluster]
156 database "openstreetmap"
157 owner "openstreetmap"
158 permissions "openstreetmap" => [:all],
159 "rails" => [:select, :insert, :update, :delete],
160 "cgimap" => [:select],
161 "planetdiff" => [:select],
162 "backup" => [:select]
169 postgresql_table table do
170 cluster node[:db][:cluster]
171 database "openstreetmap"
172 owner "openstreetmap"
173 permissions "openstreetmap" => [:all],
174 "rails" => [:select, :insert, :update, :delete],
175 "cgimap" => [:select],
176 "planetdump" => [:select],
177 "planetdiff" => [:select],
178 "backup" => [:select]
182 %w[changesets].each do |table|
183 postgresql_table table do
184 cluster node[:db][:cluster]
185 database "openstreetmap"
186 owner "openstreetmap"
187 permissions "openstreetmap" => [:all],
188 "rails" => [:select, :insert, :update, :delete],
189 "cgimap" => [:select, :update],
190 "planetdiff" => [:select],
191 "backup" => [:select]
200 postgresql_table table do
201 cluster node[:db][:cluster]
202 database "openstreetmap"
203 owner "openstreetmap"
204 permissions "openstreetmap" => [:all],
205 "rails" => [:select, :insert, :update, :delete],
206 "cgimap" => [:select, :insert, :update],
207 "backup" => [:select]
213 current_relation_members
214 current_relation_tags
218 postgresql_table table do
219 cluster node[:db][:cluster]
220 database "openstreetmap"
221 owner "openstreetmap"
222 permissions "openstreetmap" => [:all],
223 "rails" => [:select, :insert, :update, :delete],
224 "cgimap" => [:select, :insert, :delete],
225 "backup" => [:select]
239 postgresql_table table do
240 cluster node[:db][:cluster]
241 database "openstreetmap"
242 owner "openstreetmap"
243 permissions "openstreetmap" => [:all],
244 "rails" => [:select, :insert, :update, :delete],
245 "cgimap" => [:select, :insert],
246 "planetdiff" => [:select],
247 "backup" => [:select]
260 postgresql_table table do
261 cluster node[:db][:cluster]
262 database "openstreetmap"
263 owner "openstreetmap"
264 permissions "openstreetmap" => [:all],
265 "rails" => [:select, :insert, :update, :delete],
266 "cgimap" => [:select],
267 "backup" => [:select]
274 postgresql_table table do
275 cluster node[:db][:cluster]
276 database "openstreetmap"
277 owner "openstreetmap"
278 permissions "openstreetmap" => [:all],
279 "rails" => [:select, :insert, :update, :delete],
280 "cgimap" => [:select, :insert],
281 "backup" => [:select]
287 active_storage_attachments_id_seq
288 active_storage_blobs_id_seq
289 active_storage_variant_records_id_seq
290 changeset_comments_id_seq
292 client_applications_id_seq
294 diary_comments_id_seq
299 issue_comments_id_seq
304 oauth_access_grants_id_seq
305 oauth_access_tokens_id_seq
306 oauth_applications_id_seq
307 oauth_openid_requests_id_seq
316 postgresql_sequence sequence do
317 cluster node[:db][:cluster]
318 database "openstreetmap"
319 owner "openstreetmap"
320 permissions "openstreetmap" => [:all],
322 "backup" => [:select]
328 current_relations_id_seq
332 postgresql_sequence sequence do
333 cluster node[:db][:cluster]
334 database "openstreetmap"
335 owner "openstreetmap"
336 permissions "openstreetmap" => [:all],
338 "cgimap" => [:update],
339 "backup" => [:select]
343 cookbook_file "/usr/local/share/monthly-reindex.sql" do
349 systemd_service "monthly-reindex" do
350 description "Monthly database reindex"
351 exec_start "/usr/bin/psql -f /usr/local/share/monthly-reindex.sql openstreetmap"
354 restrict_address_families "AF_UNIX"
357 systemd_timer "monthly-reindex" do
358 description "Monthly database reindex"
359 on_calendar "Sun *-*-1..7 02:00"
362 service "monthly-reindex.timer" do
363 action [:enable, :start]
366 cookbook_file "/usr/local/share/yearly-reindex.sql" do
372 systemd_service "yearly-reindex" do
373 description "Yearly database reindex"
374 exec_start "/usr/bin/psql -f /usr/local/share/yearly-reindex.sql openstreetmap"
377 restrict_address_families "AF_UNIX"
380 systemd_timer "yearly-reindex" do
381 description "Yearly database reindex"
382 on_calendar "Fri *-1-8..14 02:00"
385 service "yearly-reindex.timer" do
386 action [:enable, :start]