From fed6b55c69d8343424ecdfef287875f10b3f6b17 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 9 Jul 2013 22:50:55 +0100 Subject: [PATCH] Bring streaming replication under chef control --- .../replication-bin/streaming-replicator | 12 +++++++ .../default/replication-bin/streaming-server | 10 ++++++ cookbooks/planet/recipes/replication.rb | 28 +++++++++++++++++ .../templates/default/streaming.init.erb | 31 +++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 cookbooks/planet/files/default/replication-bin/streaming-replicator create mode 100644 cookbooks/planet/files/default/replication-bin/streaming-server create mode 100644 cookbooks/planet/templates/default/streaming.init.erb diff --git a/cookbooks/planet/files/default/replication-bin/streaming-replicator b/cookbooks/planet/files/default/replication-bin/streaming-replicator new file mode 100644 index 000000000..6af3f3831 --- /dev/null +++ b/cookbooks/planet/files/default/replication-bin/streaming-replicator @@ -0,0 +1,12 @@ +#!/bin/sh + +# DO NOT EDIT - This file is being maintained by Chef + +export TZ=UTC + +exec >> /var/log/replication/streaming-replicator 2>&1 + +exec /usr/local/bin/osmosis -q \ + --replicate-apidb iterations=0 minInterval=10000 maxInterval=60000 authFile=/etc/replication/auth.conf \ + --send-replication-sequence port=8081 \ + --write-replication workingDirectory=/var/lib/replication/streaming diff --git a/cookbooks/planet/files/default/replication-bin/streaming-server b/cookbooks/planet/files/default/replication-bin/streaming-server new file mode 100644 index 000000000..11394ae39 --- /dev/null +++ b/cookbooks/planet/files/default/replication-bin/streaming-server @@ -0,0 +1,10 @@ +#!/bin/sh + +# DO NOT EDIT - This file is being maintained by Chef + +export TZ=UTC + +exec >> /var/log/replication/streaming-server 2>&1 + +exec /usr/local/bin/osmosis -q \ + --send-replication-data dataDirectory=/var/lib/replication/streaming port=8080 notificationPort=8081 diff --git a/cookbooks/planet/recipes/replication.rb b/cookbooks/planet/recipes/replication.rb index f1d06b5e1..8a3061fb4 100644 --- a/cookbooks/planet/recipes/replication.rb +++ b/cookbooks/planet/recipes/replication.rb @@ -140,3 +140,31 @@ template "/etc/cron.d/replication" do 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 diff --git a/cookbooks/planet/templates/default/streaming.init.erb b/cookbooks/planet/templates/default/streaming.init.erb new file mode 100644 index 000000000..85ed3ef67 --- /dev/null +++ b/cookbooks/planet/templates/default/streaming.init.erb @@ -0,0 +1,31 @@ +#!/bin/bash + +# DO NOT EDIT - This file is being maintained by Chef + +start() { + start-stop-daemon --start --chuid planet --background --make-pidfile --pidfile /var/run/<%= @service %>.pid --exec /usr/local/bin/<%= @service %> +} + +stop() { + start-stop-daemon --stop --retry 300 --pidfile /var/run/<%= @service %>.pid +} + +status() { + start-stop-daemon --status --pidfile /var/run/<%= @service %>.pid +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop || exit $? + start + ;; + status) + status + ;; +esac -- 2.39.5