]> git.openstreetmap.org Git - chef.git/blobdiff - roles/db-master.rb
Add roles from the private repository
[chef.git] / roles / db-master.rb
diff --git a/roles/db-master.rb b/roles/db-master.rb
new file mode 100644 (file)
index 0000000..84dd05c
--- /dev/null
@@ -0,0 +1,50 @@
+name "db-master"
+description "Role applied to all the master database server"
+
+default_attributes(
+  :postgresql => {
+    :versions => [ "9.1" ],
+    :settings => {
+      :defaults => {
+        :wal_level => "hot_standby",
+        :archive_mode => "on",
+        :archive_command => "/bin/cp %p /store/postgresql/system/archive/%f",
+        :max_wal_senders => "2",
+        :user_name_maps => {
+          :backup => [
+            { :system => "osmbackup", :postgres => "backup" }
+          ]
+        },
+        :early_authentication_rules => [
+          { :type => "local", :database => "all", :user => "backup", :method => "peer", :options => { :map => "backup" } }
+        ],
+        :late_authentication_rules => [
+          { :database => "replication", :user => "replication", :address => "146.179.159.168/32" }
+        ]
+      }
+    }
+  },
+  :rsyncd => {
+    :modules => {
+      :archive => {
+        :comment => "WAL Archive",
+        :path => "/store/postgresql/system/archive",
+        :read_only => true,
+        :write_only => false,
+        :list => false,
+        :uid => "postgres",
+        :gid => "postgres",
+        :transfer_logging => false,
+        :hosts_allow => [
+          "146.179.159.168"
+        ]
+      }
+    }
+  }
+)
+
+run_list(
+  "role[db]",
+  "recipe[db::master]",
+  "recipe[rsyncd]"
+)