nominatim: split master and slave recipes
authorSarah Hoffmann <lonvia@denofr.de>
Thu, 18 Jun 2015 05:42:47 +0000 (07:42 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Thu, 18 Jun 2015 05:44:48 +0000 (07:44 +0200)
Must not do any DB setup on slave.

cookbooks/nominatim/recipes/base.rb [moved from cookbooks/nominatim/recipes/default.rb with 90% similarity]
cookbooks/nominatim/recipes/master.db [new file with mode: 0644]
cookbooks/nominatim/recipes/slave.db [new file with mode: 0644]
roles/nominatim-master.rb
roles/nominatim.rb

similarity index 90%
rename from cookbooks/nominatim/recipes/default.rb
rename to cookbooks/nominatim/recipes/base.rb
index df5f661..c754d10 100644 (file)
@@ -1,8 +1,8 @@
 #
 # Cookbook Name:: nominatim
-# Recipe:: default
+# Recipe:: base
 #
-# Copyright 2012, OpenStreetMap Foundation
+# Copyright 2015, OpenStreetMap Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -32,7 +32,6 @@ apache_module "rewrite"
 apache_module "proxy"
 apache_module "proxy_fcgi"
 
-passwords = data_bag_item("nominatim", "passwords")
 home_directory = data_bag_item("accounts", "nominatim")["home"]
 source_directory = "#{home_directory}/nominatim"
 email_errors = data_bag_item("accounts", "lonvia")["email"]
@@ -70,25 +69,6 @@ node[:nominatim][:fpm_pools].each do |name, data|
   end
 end
 
-superusers = %w(tomh lonvia twain nominatim)
-
-superusers.each do |user|
-  postgresql_user user do
-    cluster database_cluster
-    superuser true
-  end
-end
-
-postgresql_user "www-data" do
-  cluster database_cluster
-end
-
-postgresql_user "replication" do
-  cluster database_cluster
-  password passwords["replication"]
-  replication true
-end
-
 postgresql_munin "nominatim" do
   cluster database_cluster
   database database_name
@@ -141,14 +121,6 @@ execute "compile_nominatim" do
   user "nominatim"
 end
 
-git source_directory do
-  action :checkout
-  repository node[:nominatim][:repository]
-  enable_submodules true
-  user "nominatim"
-  group "nominatim"
-  notifies :run, "execute[compile_nominatim]"
-end
 
 directory "#{source_directory}/log" do
   owner "nominatim"
diff --git a/cookbooks/nominatim/recipes/master.db b/cookbooks/nominatim/recipes/master.db
new file mode 100644 (file)
index 0000000..a634441
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Cookbook Name:: nominatim
+# Recipe:: master
+#
+# Copyright 2015, 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
+#
+#     http://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,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "nominatim::base"
+
+passwords = data_bag_item("nominatim", "passwords")
+home_directory = data_bag_item("accounts", "nominatim")["home"]
+
+superusers = %w(tomh lonvia twain nominatim)
+
+superusers.each do |user|
+  postgresql_user user do
+    cluster database_cluster
+    superuser true
+  end
+end
+
+postgresql_user "www-data" do
+  cluster database_cluster
+end
+
+postgresql_user "replication" do
+  cluster database_cluster
+  password passwords["replication"]
+  replication true
+end
+
+
+git "#{home_directory}/nominatim" do
+  action :checkout
+  repository node[:nominatim][:repository]
+  enable_submodules true
+  user "nominatim"
+  group "nominatim"
+  notifies :run, "execute[compile_nominatim]"
+end
+
+
diff --git a/cookbooks/nominatim/recipes/slave.db b/cookbooks/nominatim/recipes/slave.db
new file mode 100644 (file)
index 0000000..bcc1b11
--- /dev/null
@@ -0,0 +1,31 @@
+#
+# Cookbook Name:: nominatim
+# Recipe:: slave
+#
+# Copyright 2015, 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
+#
+#     http://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,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "nominatim::base"
+
+home_directory = data_bag_item("accounts", "nominatim")["home"]
+
+git "#{home_directory}/nominatim" do
+  repository node[:nominatim][:repository]
+  enable_submodules true
+  user "nominatim"
+  group "nominatim"
+  notifies :run, "execute[compile_nominatim]"
+end
+
index d787716..f910bcb 100644 (file)
@@ -40,5 +40,6 @@ default_attributes(
 
 run_list(
   "role[nominatim]",
+  "recipe[nominatim::master]",
   "recipe[rsyncd]"
 )
index e1a2a3d..8cfa7fe 100644 (file)
@@ -87,5 +87,4 @@ default_attributes(
 )
 
 run_list(
-  "recipe[nominatim]"
 )