Centralise definition of read/write and readonly database servers
authorTom Hughes <tom@compton.nu>
Thu, 12 May 2016 20:33:45 +0000 (21:33 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 12 May 2016 20:33:45 +0000 (21:33 +0100)
cookbooks/planet/files/default/replication-bin/users-agreed
cookbooks/planet/templates/default/changesets.conf.erb
cookbooks/planet/templates/default/replication.auth.erb
cookbooks/planet/templates/default/users-agreed.conf.erb
roles/planet.rb
roles/web-db.rb [new file with mode: 0644]
roles/web.rb

index 427910c0583dfba8d2cffc8a0c9b1daa76841c81..707a65bfd94cd955d17a98b0cbbcdad21ee7401d 100644 (file)
@@ -8,9 +8,9 @@ export PGPASSFILE=/etc/replication/users-agreed.conf
 
 echo "# user IDs < 286582 who have agreed to the contributor terms. " > $T/users_agreed
 echo "# any active user IDs >= 286582 would have agreed as part of the sign-up process." >> $T/users_agreed
-psql -h ramoth.ic.openstreetmap.org -U planetdiff -t -c "select id from users where id < 286582 and terms_agreed is not null order by id asc" openstreetmap >> $T/users_agreed
+psql -h <%= node[:web][:readonly_database_host] %> -U planetdiff -t -c "select id from users where id < 286582 and terms_agreed is not null order by id asc" openstreetmap >> $T/users_agreed
 
-psql -h ramoth.ic.openstreetmap.org -U planetdiff -t -c "select id from users where terms_seen and terms_agreed is null order by id asc" openstreetmap > $T/users_disagreed
+psql -h <%= node[:web][:readonly_database_host] %> -U planetdiff -t -c "select id from users where terms_seen and terms_agreed is null order by id asc" openstreetmap > $T/users_disagreed
 
 if cmp -s "${T}/users_agreed" "/store/planet/users_agreed/users_agreed.txt"; then
   : # do nothing
index f35e403fe0e780df398937a8a1529749988f00ea..309f253b49638720077e3f01bfba988567a8fd1c 100644 (file)
@@ -1,3 +1,3 @@
 state_file: /store/planet/replication/changesets/state.yaml
-db: host=katla.bm.openstreetmap.org dbname=openstreetmap user=planetdiff password=<%= @password %>
+db: host=<%= node[:web][:database_host] %> dbname=openstreetmap user=planetdiff password=<%= @password %>
 data_dir: /store/planet/replication/changesets
index bcba0e486569e91bd65f834d8e78d2214e822a2a..e80dd23d0a2aacdc01b5fb5619b4f9fe9f283eb1 100644 (file)
@@ -1,7 +1,7 @@
 # DO NOT EDIT - This file is being maintained by Chef
 
 # The database host system
-host=katla.bm.openstreetmap.org
+host=<%= node[:web][:database_host] %>
 
 # The database instance
 database=openstreetmap
index 1f2e3c36c0b71ac2b50496b5cd533fe60c4fa539..29fe1a55fa65226e47b9d99e2a2bb305c5161967 100644 (file)
@@ -1,3 +1,3 @@
 # DO NOT EDIT - This file is being maintained by Chef
 
-ramoth.ic.openstreetmap.org:5432:openstreetmap:planetdiff:<%= @password %>
+<%= node[:web][:readonly_database_host] %>:5432:openstreetmap:planetdiff:<%= @password %>
index d68bdabc3ac589e6c041bc9506308133bd6b2dfe..8ee1ce9e95f572a6a73ee2a491fe79328726c183 100644 (file)
@@ -43,6 +43,7 @@ default_attributes(
 )
 
 run_list(
+  "role[web-db]",
   "recipe[planet]",
   "recipe[planet::replication]",
   "recipe[nfs::server]",
diff --git a/roles/web-db.rb b/roles/web-db.rb
new file mode 100644 (file)
index 0000000..e394ec2
--- /dev/null
@@ -0,0 +1,9 @@
+name "web-db"
+description "Role applied to all servers needing to find the main database"
+
+default_attributes(
+  :web => {
+    :database_host => "katla.bm.openstreetmap.org",
+    :readonly_database_host => "ramoth.ic.openstreetmap.org"
+  }
+)
index a57d2ec54dc7c9e133ca76eef0d37cd506726b47..85124e485f89e22b0337048d595bb6f60a294c5c 100644 (file)
@@ -14,8 +14,10 @@ default_attributes(
     :pool_idle_time => 0
   },
   :web => {
-    :status => "online",
-    :database_host => "katla.bm.openstreetmap.org",
-    :readonly_database_host => "ramoth.ic.openstreetmap.org"
+    :status => "online"
   }
 )
+
+run_list(
+  "role[web-db]"
+)