db_passwords = data_bag_item("db", "passwords")
+package "postgresql-client"
+
package "ruby"
+package "rubygems"
package "ruby-libxml"
+package "libpq-dev"
gem_package "pg"
-template "/usr/local/bin/replicate-changesets" do
- source "changesets.bin.erb"
+remote_directory "/usr/local/bin" do
+ source "replication-bin"
+ owner "root"
+ group "root"
+ mode 0755
+ files_owner "root"
+ files_group "root"
+ files_mode 0755
+end
+
+remote_directory "/store/planet/replication" do
+ source "replication-cgi"
owner "root"
group "root"
mode 0755
+ files_owner "root"
+ files_group "root"
+ files_mode 0755
+end
+
+directory "/store/planet/replication/changesets" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+directory "/store/planet/replication/day" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+directory "/store/planet/replication/hour" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+directory "/store/planet/replication/minute" do
+ owner "planet"
+ group "planet"
+ mode 0755
end
directory "/etc/replication" do
variables :password => db_passwords["planetdiff"]
end
+template "/etc/replication/users-agreed.conf" do
+ source "users-agreed.conf.erb"
+ user "planet"
+ group "planet"
+ mode 0600
+ variables :password => db_passwords["planetdiff"]
+end
+
directory "/var/lib/replication" do
owner "planet"
group "planet"
group "root"
mode 0644
end
+
+directory "/var/lib/replication/streaming" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+directory "/var/log/replication" do
+ owner "planet"
+ group "planet"
+ mode 0755
+end
+
+[ "streaming-replicator", "streaming-server" ].each do |name|
+ template "/etc/init.d/#{name}" do
+ source "streaming.init.erb"
+ owner "root"
+ group "root"
+ mode 0755
+ variables :service => name
+ end
+
+ service name do
+ action [ :enable, :start ]
+ supports :restart => true, :status => true
+ subscribes :restart, "template[/etc/init.d/#{name}]"
+ end
+end