X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/cbbee2920b20cc05becd4d5b00e264dac84e7d5b..a68415b8f2bf106b6ea5948b0605c897b516ef4f:/cookbooks/planet/recipes/replication.rb diff --git a/cookbooks/planet/recipes/replication.rb b/cookbooks/planet/recipes/replication.rb index e969c99d2..b20cf7c65 100644 --- a/cookbooks/planet/recipes/replication.rb +++ b/cookbooks/planet/recipes/replication.rb @@ -24,6 +24,7 @@ db_passwords = data_bag_item("db", "passwords") package "postgresql-client" package "ruby" +package "ruby-dev" package "ruby-libxml" package "libpq-dev" @@ -33,57 +34,64 @@ remote_directory "/usr/local/bin" do source "replication-bin" owner "root" group "root" - mode 0755 + mode 0o755 files_owner "root" files_group "root" - files_mode 0755 + files_mode 0o755 +end + +template "/usr/local/bin/users-agreed" do + source "users-agreed.erb" + owner "root" + group "root" + mode 0o755 end remote_directory "/store/planet/replication" do source "replication-cgi" owner "root" group "root" - mode 0755 + mode 0o755 files_owner "root" files_group "root" - files_mode 0755 + files_mode 0o755 end directory "/store/planet/replication/changesets" do owner "planet" group "planet" - mode 0755 + mode 0o755 end directory "/store/planet/replication/day" do owner "planet" group "planet" - mode 0755 + mode 0o755 end directory "/store/planet/replication/hour" do owner "planet" group "planet" - mode 0755 + mode 0o755 end directory "/store/planet/replication/minute" do owner "planet" group "planet" - mode 0755 + mode 0o755 end directory "/etc/replication" do owner "root" group "root" - mode 0755 + mode 0o755 end template "/etc/replication/auth.conf" do source "replication.auth.erb" user "root" group "planet" - mode 0640 + mode 0o640 variables :password => db_passwords["planetdiff"] end @@ -91,7 +99,7 @@ template "/etc/replication/changesets.conf" do source "changesets.conf.erb" user "root" group "planet" - mode 0640 + mode 0o640 variables :password => db_passwords["planetdiff"] end @@ -99,27 +107,27 @@ template "/etc/replication/users-agreed.conf" do source "users-agreed.conf.erb" user "planet" group "planet" - mode 0600 + mode 0o600 variables :password => db_passwords["planetdiff"] end directory "/var/lib/replication" do owner "planet" group "planet" - mode 0755 + mode 0o755 end directory "/var/lib/replication/hour" do owner "planet" group "planet" - mode 0755 + mode 0o755 end template "/var/lib/replication/hour/configuration.txt" do source "replication.config.erb" owner "planet" group "planet" - mode 0644 + mode 0o644 variables :base => "minute", :interval => 3600 end @@ -130,14 +138,14 @@ end directory "/var/lib/replication/day" do owner "planet" group "planet" - mode 0755 + mode 0o755 end template "/var/lib/replication/day/configuration.txt" do source "replication.config.erb" owner "planet" group "planet" - mode 0644 + mode 0o644 variables :base => "hour", :interval => 86400 end @@ -145,37 +153,50 @@ link "/var/lib/replication/day/data" do to "/store/planet/replication/day" end -template "/etc/cron.d/replication" do - source "replication.cron.erb" - owner "root" - group "root" - mode 0644 +if node[:planet][:replication] == "enabled" + template "/etc/cron.d/replication" do + source "replication.cron.erb" + owner "root" + group "root" + mode 0o644 + end +else + file "/etc/cron.d/replication" do + action :delete + end end directory "/var/lib/replication/streaming" do owner "planet" group "planet" - mode 0755 + mode 0o755 end directory "/var/log/replication" do owner "planet" group "planet" - mode 0755 + mode 0o755 end -[ "streaming-replicator", "streaming-server" ].each do |name| +["streaming-replicator", "streaming-server"].each do |name| template "/etc/init.d/#{name}" do source "streaming.init.erb" owner "root" group "root" - mode 0755 + mode 0o755 variables :service => name end - service name do - action [ :enable, :start ] - supports :restart => true, :status => true - subscribes :restart, "template[/etc/init.d/#{name}]" + if node[:planet][:replication] == "enabled" + service name do + action [:enable, :start] + supports :restart => true, :status => true + subscribes :restart, "template[/etc/init.d/#{name}]" + end + else + service name do + action [:disable, :stop] + supports :restart => true, :status => true + end end end