From 265fabeed2bc7d587014291666a54d679c3b4a1a Mon Sep 17 00:00:00 2001 From: Josh Moore Date: Tue, 31 Mar 2015 09:51:44 +0800 Subject: [PATCH] updates * updated master file to work with new version of god * switched from runit to init.d to make god work with RVM --- metadata.rb | 6 ++-- recipes/default.rb | 24 +++++++--------- templates/default/god.erb | 37 ++++++++++++++++++++++++ templates/default/god.init.erb | 42 ---------------------------- templates/default/master.god.erb | 27 +----------------- templates/default/sv-god-log-run.erb | 2 -- templates/default/sv-god-run.erb | 6 ---- 7 files changed, 50 insertions(+), 94 deletions(-) create mode 100644 templates/default/god.erb delete mode 100644 templates/default/god.init.erb delete mode 100644 templates/default/sv-god-log-run.erb delete mode 100644 templates/default/sv-god-run.erb diff --git a/metadata.rb b/metadata.rb index 4452dab..42f3ff0 100644 --- a/metadata.rb +++ b/metadata.rb @@ -4,12 +4,10 @@ license "Apache 2.0" description "Installs and configures god and provides a define for monitoring" long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version "1.0.5" +version "2.0.0" -recipe "god", "Installs god and starts it" +recipe "god", "Installs god and starts it as a runit service" %w{debian ubuntu}.each do |os| supports os end - -depends "runit" diff --git a/recipes/default.rb b/recipes/default.rb index a6b3de0..84aa1cb 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -19,7 +19,6 @@ gem_package "god" do action :install - gem_binary "/usr/bin/gem" end directory "/etc/god/conf.d" do @@ -36,18 +35,15 @@ mode 0755 end -if node['god']['init_style'] == 'runit' - include_recipe "runit" - runit_service "god" -elsif node['god']['init_style'] == 'init' - template "/etc/init.d/god" do - source "god.init.erb" - owner "root" - group "root" - mode 0755 - end +template "/etc/init.d/god" do + source "god.erb" + owner "root" + group "root" + mode 0755 +end - service "god" do - action :start - end +service 'god' do + supports reload: false + action [:start, :enable] end + diff --git a/templates/default/god.erb b/templates/default/god.erb new file mode 100644 index 0000000..c74e0b9 --- /dev/null +++ b/templates/default/god.erb @@ -0,0 +1,37 @@ +#!/bin/bash +# +# God +# +# chkconfig: - 85 15 +# description: start, stop, restart, status for God +# + +RETVAL=0 + +case "$1" in + start) + god -P /var/run/god.pid -l /var/log/god.log + god load /etc/god/master.god + RETVAL=$? + ;; + stop) + kill `cat /var/run/god.pid` + RETVAL=$? + ;; + restart) + kill `cat /var/run/god.pid` + god -P /var/run/god.pid -l /var/log/god.log + god load /etc/god/master.god + RETVAL=$? + ;; + status) + /usr/bin/god status + RETVAL=$? + ;; + *) + echo "Usage: god {start|stop|restart|status}" + exit 1 + ;; +esac + +exit $RETVAL \ No newline at end of file diff --git a/templates/default/god.init.erb b/templates/default/god.init.erb deleted file mode 100644 index 8bd44ee..0000000 --- a/templates/default/god.init.erb +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# -# god Startup script for god (http://god.rubyforge.org) -# -# chkconfig: - 85 15 -# description: God is an easy to configure, easy to extend monitoring \ -# framework written in Ruby. -# - -CONF_DIR=/etc/god - -RETVAL=0 - -# Go no further if config directory is missing. -[ -d "$CONF_DIR" ] || exit 0 - -case "$1" in - start) - # Create pid directory - <%= node[:god][:bin] %> -c $CONF_DIR/master.god - RETVAL=$? - ;; - stop) - <%= node[:god][:bin] %> terminate - RETVAL=$? - ;; - restart) - <%= node[:god][:bin] %> terminate - <%= node[:god][:bin] %> -c $CONF_DIR/master.god - RETVAL=$? - ;; - status) - <%= node[:god][:bin] %> status - RETVAL=$? - ;; - *) - echo "Usage: god {start|stop|restart|status}" - exit 1 - ;; -esac - -exit $RETVAL diff --git a/templates/default/master.god.erb b/templates/default/master.god.erb index a5dc9a9..fdf1735 100644 --- a/templates/default/master.god.erb +++ b/templates/default/master.god.erb @@ -1,30 +1,5 @@ # # Generated by Chef for <%= node[:hostname] %> # -God::Contacts::Email.defaults do |d| - d.from_email = "<%= node['god']['email']['from'] %>" - d.from_name = "God" - - d.delivery_method = :<%= node['god']['email']['server']['delivery_method'] %> - - d.server_host = "<%= node['god']['email']['server']['server_host'] %>" - d.server_port = <%= node['god']['email']['server']['server_port'] %> - - <%- if node['god']['email']['server']['server_config'] != false %> - d.server_domain = "<%= node['god']['email']['server']['server_domain'] %>" - d.server_auth = "<%= node['god']['email']['server']['server_auth'] %>" - d.server_user = "<%= node['god']['email']['server']['server_user'] %>" - d.server_password = "<%= node['god']['email']['server']['server_password'] %>" - <%- end %> -end - -<% node[:god][:email][:contacts].each do |name,email,group| %> -God.contact(:email) do |c| - c.name = "<%= name %>" - c.to_email = "<%= email %>" - c.group = "<%= group %>" -end - -<% end %> - God.load "/etc/god/conf.d/*.god" + diff --git a/templates/default/sv-god-log-run.erb b/templates/default/sv-god-log-run.erb deleted file mode 100644 index a79a518..0000000 --- a/templates/default/sv-god-log-run.erb +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec svlogd -tt ./main diff --git a/templates/default/sv-god-run.erb b/templates/default/sv-god-run.erb deleted file mode 100644 index 551de73..0000000 --- a/templates/default/sv-god-run.erb +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -exec 2>&1 - -trap 'kill -HUP %1' 1 2 13 15 - -<%= node[:god][:bin] %> -D -c /etc/god/master.god --no-syslog & wait