Empact-deprec 1.99.21
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +170 -0
- data/COPYING +19 -0
- data/LICENSE +339 -0
- data/README +136 -0
- data/THANKS +5 -0
- data/bin/depify +133 -0
- data/docs/ANNOUNCE.deprec2 +47 -0
- data/docs/README.install +88 -0
- data/docs/README.nagios +28 -0
- data/docs/README.rails +20 -0
- data/docs/README.svn +31 -0
- data/docs/ROADMAP.txt +74 -0
- data/docs/deprec-1.x/deprec-1.x.quickstart +50 -0
- data/docs/deprec-1.x/notes.txt +12 -0
- data/docs/deprec_banner.gif +0 -0
- data/lib/deprec.rb +8 -0
- data/lib/deprec/capistrano_extensions.rb +378 -0
- data/lib/deprec/recipes.rb +40 -0
- data/lib/deprec/recipes/aoe.rb +117 -0
- data/lib/deprec/recipes/apache.rb +179 -0
- data/lib/deprec/recipes/ar_sendmail.rb +65 -0
- data/lib/deprec/recipes/canonical.rb +57 -0
- data/lib/deprec/recipes/deprec.rb +155 -0
- data/lib/deprec/recipes/deprecated.rb +71 -0
- data/lib/deprec/recipes/example.rb +115 -0
- data/lib/deprec/recipes/git.rb +168 -0
- data/lib/deprec/recipes/gitosis.rb +47 -0
- data/lib/deprec/recipes/god.rb +107 -0
- data/lib/deprec/recipes/heartbeat.rb +138 -0
- data/lib/deprec/recipes/iptables.rb +53 -0
- data/lib/deprec/recipes/logrotate.rb +51 -0
- data/lib/deprec/recipes/lvm.rb +20 -0
- data/lib/deprec/recipes/memcached.rb +102 -0
- data/lib/deprec/recipes/mongrel.rb +209 -0
- data/lib/deprec/recipes/monit.rb +130 -0
- data/lib/deprec/recipes/mysql.rb +115 -0
- data/lib/deprec/recipes/nagios.rb +302 -0
- data/lib/deprec/recipes/network.rb +84 -0
- data/lib/deprec/recipes/nginx.rb +154 -0
- data/lib/deprec/recipes/ntp.rb +96 -0
- data/lib/deprec/recipes/php.rb +99 -0
- data/lib/deprec/recipes/postfix.rb +105 -0
- data/lib/deprec/recipes/rails.rb +302 -0
- data/lib/deprec/recipes/ruby.rb +66 -0
- data/lib/deprec/recipes/sphinx.rb +83 -0
- data/lib/deprec/recipes/ssh.rb +93 -0
- data/lib/deprec/recipes/svn.rb +169 -0
- data/lib/deprec/recipes/swiftiply.rb +108 -0
- data/lib/deprec/recipes/thin.rb +201 -0
- data/lib/deprec/recipes/trac.rb +277 -0
- data/lib/deprec/recipes/ubuntu.rb +20 -0
- data/lib/deprec/recipes/users.rb +90 -0
- data/lib/deprec/recipes/utils.rb +39 -0
- data/lib/deprec/recipes/xen.rb +259 -0
- data/lib/deprec/templates/aoe/aoe-init +55 -0
- data/lib/deprec/templates/aoe/fence_aoemask +351 -0
- data/lib/deprec/templates/apache/httpd-vhost-app.conf.erb +144 -0
- data/lib/deprec/templates/apache/httpd.conf +465 -0
- data/lib/deprec/templates/apache/index.html.erb +37 -0
- data/lib/deprec/templates/apache/master.css +72 -0
- data/lib/deprec/templates/ar_sendmail/logrotate.conf.erb +9 -0
- data/lib/deprec/templates/ar_sendmail/monit.conf.erb +5 -0
- data/lib/deprec/templates/coraid/aoe-init +55 -0
- data/lib/deprec/templates/deprec/caprc.erb +14 -0
- data/lib/deprec/templates/god/god-init-script +71 -0
- data/lib/deprec/templates/god/god-notifications +0 -0
- data/lib/deprec/templates/god/god_mongrel.erb +81 -0
- data/lib/deprec/templates/god/god_mysql.erb +50 -0
- data/lib/deprec/templates/god/god_nginx.erb +61 -0
- data/lib/deprec/templates/god/god_thin.erb +80 -0
- data/lib/deprec/templates/heartbeat/authkeys.erb +2 -0
- data/lib/deprec/templates/heartbeat/ha.cf.erb +15 -0
- data/lib/deprec/templates/heartbeat/haresources.erb +1 -0
- data/lib/deprec/templates/iptables/iptables.up.erb +41 -0
- data/lib/deprec/templates/logrotate/logrotate.conf.erb +32 -0
- data/lib/deprec/templates/memcached/memcached-init-script +65 -0
- data/lib/deprec/templates/memcached/memcached.conf.erb +46 -0
- data/lib/deprec/templates/mongrel/logrotate.conf.erb +11 -0
- data/lib/deprec/templates/mongrel/mongrel_cluster-init-script +54 -0
- data/lib/deprec/templates/mongrel/mongrel_cluster.logrotate.d +14 -0
- data/lib/deprec/templates/mongrel/mongrel_cluster.yml.erb +10 -0
- data/lib/deprec/templates/mongrel/monit.conf.erb +17 -0
- data/lib/deprec/templates/monit/monit-init-script +104 -0
- data/lib/deprec/templates/monit/monitrc.erb +227 -0
- data/lib/deprec/templates/monit/nothing +0 -0
- data/lib/deprec/templates/mysql/create_databases.sql +20 -0
- data/lib/deprec/templates/mysql/database.yml.prod +6 -0
- data/lib/deprec/templates/mysql/database.yml.stage +6 -0
- data/lib/deprec/templates/mysql/my.cnf.erb +140 -0
- data/lib/deprec/templates/mysql/sphinx.conf.prod +542 -0
- data/lib/deprec/templates/mysql/sphinx.conf.stage +542 -0
- data/lib/deprec/templates/nagios/cgi.cfg.erb +321 -0
- data/lib/deprec/templates/nagios/commands.cfg.erb +240 -0
- data/lib/deprec/templates/nagios/contacts.cfg.erb +75 -0
- data/lib/deprec/templates/nagios/hosts.cfg.erb +70 -0
- data/lib/deprec/templates/nagios/htpasswd.users +1 -0
- data/lib/deprec/templates/nagios/localhost.cfg.erb +157 -0
- data/lib/deprec/templates/nagios/nagios.cfg.erb +1274 -0
- data/lib/deprec/templates/nagios/nagios_apache_vhost.conf.erb +45 -0
- data/lib/deprec/templates/nagios/nrpe.cfg.erb +208 -0
- data/lib/deprec/templates/nagios/nrpe.xinetd.erb +16 -0
- data/lib/deprec/templates/nagios/resource.cfg.erb +34 -0
- data/lib/deprec/templates/nagios/services.cfg.erb +7 -0
- data/lib/deprec/templates/nagios/templates.cfg.erb +190 -0
- data/lib/deprec/templates/nagios/timeperiods.cfg.erb +94 -0
- data/lib/deprec/templates/network/hostname.erb +1 -0
- data/lib/deprec/templates/network/hosts.erb +2 -0
- data/lib/deprec/templates/network/interfaces.erb +18 -0
- data/lib/deprec/templates/nginx/logrotate.conf.erb +13 -0
- data/lib/deprec/templates/nginx/mime.types.erb +70 -0
- data/lib/deprec/templates/nginx/nginx-init-script +62 -0
- data/lib/deprec/templates/nginx/nginx.conf.erb +53 -0
- data/lib/deprec/templates/nginx/nginx.logrotate.d +12 -0
- data/lib/deprec/templates/nginx/nothing.conf +1 -0
- data/lib/deprec/templates/nginx/rails_nginx_vhost.conf.erb +45 -0
- data/lib/deprec/templates/ntp/ntp.conf.erb +42 -0
- data/lib/deprec/templates/postfix/aliases.erb +3 -0
- data/lib/deprec/templates/postfix/dynamicmaps.cf.erb +8 -0
- data/lib/deprec/templates/postfix/main.cf.erb +41 -0
- data/lib/deprec/templates/postfix/master.cf.erb +77 -0
- data/lib/deprec/templates/rails/database.yml.erb +6 -0
- data/lib/deprec/templates/sphinx/monit.conf.erb +5 -0
- data/lib/deprec/templates/ssh/ssh_config.erb +50 -0
- data/lib/deprec/templates/ssh/sshd_config.erb +78 -0
- data/lib/deprec/templates/subversion/svn.apache.vhost.erb +43 -0
- data/lib/deprec/templates/swiftiply/swiftiply-init-script +61 -0
- data/lib/deprec/templates/swiftiply/swiftiply.yml.erb +11 -0
- data/lib/deprec/templates/thin/thin-init-script +51 -0
- data/lib/deprec/templates/thin/thin.yml.erb +11 -0
- data/lib/deprec/templates/trac/apache_vhost.conf.erb +24 -0
- data/lib/deprec/templates/trac/nginx_vhost.conf.erb +26 -0
- data/lib/deprec/templates/trac/trac.ini.erb +169 -0
- data/lib/deprec/templates/trac/trac_deprec.png +0 -0
- data/lib/deprec/templates/trac/tracd-init.erb +43 -0
- data/lib/deprec/templates/trac/users.htdigest.erb +0 -0
- data/lib/deprec/templates/xen/15-disable-hwclock +40 -0
- data/lib/deprec/templates/xen/network-bridge-wrapper +3 -0
- data/lib/deprec/templates/xen/xen-tools.conf.erb +220 -0
- data/lib/deprec/templates/xen/xend-config.sxp.erb +195 -0
- data/lib/deprec/templates/xen/xend-init.erb +69 -0
- data/lib/deprec/templates/xen/xendomains.erb +137 -0
- data/lib/deprec/templates/xen/xm.tmpl.erb +85 -0
- data/lib/vmbuilder_plugins/all.rb +20 -0
- data/lib/vmbuilder_plugins/apt.rb +93 -0
- data/lib/vmbuilder_plugins/emerge.rb +76 -0
- data/lib/vmbuilder_plugins/gem.rb +90 -0
- data/lib/vmbuilder_plugins/std.rb +203 -0
- metadata +207 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
2
|
+
"http://www.w3.org/TR/html4/strict.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
6
|
+
<title>Apache2 installed by deprec</title>
|
7
|
+
<link rel="stylesheet" href="/master.css" type="text/css" media="screen" title="no title" charset="utf-8">
|
8
|
+
|
9
|
+
</head>
|
10
|
+
<body id="" onload="">
|
11
|
+
<div id="wrapper">
|
12
|
+
<h1>Apache2 installed by deprec</h1>
|
13
|
+
<h2>Commands</h2>
|
14
|
+
<dl>
|
15
|
+
<dt>cap deprec:apache:start</dt><dd>Start apache</dd>
|
16
|
+
<dt>cap deprec:apache:stop</dt><dd>Stop apache</dd>
|
17
|
+
<dt>cap deprec:apache:restart</dt><dd>Stop restart</dd>
|
18
|
+
<dt>cap deprec:apache:reload</dt><dd>Reload apache</dd>
|
19
|
+
|
20
|
+
<dt>cap deprec:apache:install</dt><dd>Install apache</dd>
|
21
|
+
<dt>cap deprec:apache:config_gen</dt><dd>Generate apache configs</dd>
|
22
|
+
|
23
|
+
<dt>cap deprec:apache:activate</dt><dd>Start Apache when server boots</dd>
|
24
|
+
<dt>cap deprec:apache:deactivate</dt><dd>Don't start Apache when server boots</dd>
|
25
|
+
|
26
|
+
</dl>
|
27
|
+
|
28
|
+
<dl>
|
29
|
+
<p>Installation options</p>
|
30
|
+
<% SRC_PACKAGES[:apache].each do |key, val| %>
|
31
|
+
<dt><%= key %></dt>
|
32
|
+
<dd><%= val %></dd>
|
33
|
+
<% end %>
|
34
|
+
</dl>
|
35
|
+
</div>
|
36
|
+
</body>
|
37
|
+
</html>
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/*-----------------------------------------------------------------------------
|
2
|
+
Basic Stylesheet
|
3
|
+
|
4
|
+
version: 1
|
5
|
+
author: Mike Bailey
|
6
|
+
email: mike@bailey.net.au
|
7
|
+
website: http://mike.bailey.net.au/
|
8
|
+
-----------------------------------------------------------------------------*/
|
9
|
+
|
10
|
+
/* General stuff *************************************************************/
|
11
|
+
|
12
|
+
* {
|
13
|
+
padding:0;
|
14
|
+
margin: 0;
|
15
|
+
font-family: sans-serif;
|
16
|
+
}
|
17
|
+
|
18
|
+
body {
|
19
|
+
text-align: center;
|
20
|
+
min-width: 760;
|
21
|
+
}
|
22
|
+
|
23
|
+
.clear {
|
24
|
+
clear: both;
|
25
|
+
}
|
26
|
+
|
27
|
+
h1 {
|
28
|
+
padding: 0.5em;
|
29
|
+
}
|
30
|
+
|
31
|
+
dl {
|
32
|
+
border: 1px solid red;
|
33
|
+
padding: 1em;
|
34
|
+
}
|
35
|
+
|
36
|
+
dl p {
|
37
|
+
font-size: 1.5em;
|
38
|
+
padding: .5em 0;
|
39
|
+
}
|
40
|
+
|
41
|
+
dt {
|
42
|
+
padding: 0 0 0 1em;
|
43
|
+
}
|
44
|
+
|
45
|
+
dd {
|
46
|
+
padding: 0 0 1em 2em;
|
47
|
+
color: darkblue;
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
/* Layout ********************************************************************/
|
52
|
+
|
53
|
+
#wrapper {
|
54
|
+
width: 720px;
|
55
|
+
background: #d0d0d0;
|
56
|
+
margin: 0 auto;
|
57
|
+
text-align: left;
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
/* Navigation links **********************************************************/
|
62
|
+
|
63
|
+
ul#navlinks {
|
64
|
+
width: 720px;
|
65
|
+
list-style: none;
|
66
|
+
background: #FAA819;
|
67
|
+
float: left;
|
68
|
+
}
|
69
|
+
|
70
|
+
ul li {
|
71
|
+
float:left;
|
72
|
+
}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
check process ar_sendmail-<%= application %> with pidfile <%= current_path %>/tmp/pids/ar_sendmail.pid
|
2
|
+
start program = "/usr/local/sbin/daemonize -c <%= current_path %> -o <%= current_path %>/log/ar_sendmail.log -e <%= current_path %>/log/ar_sendmail.log -p <%= current_path %>/tmp/pids/ar_sendmail.pid -l <%= current_path %>/tmp/pids/ar_sendmail.pid /usr/local/bin/ar_sendmail --environment production --verbose"
|
3
|
+
stop program = "/usr/bin/xargs kill -9 < <%= current_path %>/tmp/pids/ar_sendmail.pid"
|
4
|
+
|
5
|
+
if 3 restarts within 5 cycles then timeout
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
# aoe-init - example init script for ATA over Ethernet storage
|
3
|
+
#
|
4
|
+
# Edit this script for your purposes. (Changing "eth1" to the
|
5
|
+
# appropriate interface name, adding commands, etc.) You might
|
6
|
+
# need to tune the sleep times.
|
7
|
+
#
|
8
|
+
# Install this script in /etc/init.d with the other init scripts.
|
9
|
+
#
|
10
|
+
# Make it executable:
|
11
|
+
# chmod 755 /etc/init.d/aoe-init
|
12
|
+
#
|
13
|
+
# Install symlinks for boot time:
|
14
|
+
# cd /etc/rc3.d && ln -s ../init.d/aoe-init S99aoe-init
|
15
|
+
# cd /etc/rc5.d && ln -s ../init.d/aoe-init S99aoe-init
|
16
|
+
#
|
17
|
+
# Install symlinks for shutdown time:
|
18
|
+
# cd /etc/rc0.d && ln -s ../init.d/aoe-init K01aoe-init
|
19
|
+
# cd /etc/rc1.d && ln -s ../init.d/aoe-init K01aoe-init
|
20
|
+
# cd /etc/rc2.d && ln -s ../init.d/aoe-init K01aoe-init
|
21
|
+
# cd /etc/rc6.d && ln -s ../init.d/aoe-init K01aoe-init
|
22
|
+
#
|
23
|
+
|
24
|
+
case "$1" in
|
25
|
+
"start")
|
26
|
+
# load any needed network drivers here
|
27
|
+
|
28
|
+
# replace "eth1" with your aoe network interface
|
29
|
+
ifconfig eth1 up
|
30
|
+
|
31
|
+
# time for network interface to come up
|
32
|
+
sleep 4
|
33
|
+
|
34
|
+
modprobe aoe
|
35
|
+
|
36
|
+
# time for AoE discovery and udev
|
37
|
+
sleep 7
|
38
|
+
|
39
|
+
# add your raid assemble commands here
|
40
|
+
# add any LVM commands if needed (e.g. vgchange)
|
41
|
+
# add your filesystem mount commands here
|
42
|
+
|
43
|
+
test -d /var/lock/subsys && touch /var/lock/subsys/aoe-init
|
44
|
+
;;
|
45
|
+
"stop")
|
46
|
+
# add your filesystem umount commands here
|
47
|
+
# deactivate LVM volume groups if needed
|
48
|
+
# add your raid stop commands here
|
49
|
+
rmmod aoe
|
50
|
+
rm -f /var/lock/subsys/aoe-init
|
51
|
+
;;
|
52
|
+
*)
|
53
|
+
echo "usage: `basename $0` {start|stop}" 1>&2
|
54
|
+
;;
|
55
|
+
esac
|
@@ -0,0 +1,14 @@
|
|
1
|
+
ssh_options[:paranoid] = false
|
2
|
+
ssh_options[:forward_agent] = true
|
3
|
+
|
4
|
+
|
5
|
+
# Just import the general purpose tasks
|
6
|
+
require '/deprec/general_purpose' if respond_to?(:namespace)
|
7
|
+
|
8
|
+
# Enable all deprec tasks all the time. This will change the
|
9
|
+
# behviour of some standard cap tasks (like 'cap deploy') so
|
10
|
+
# only enable it if you know what you're doing!
|
11
|
+
#
|
12
|
+
# require 'deprec/recipes' unless respond_to?(:namespace)
|
13
|
+
|
14
|
+
|
@@ -0,0 +1,71 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
### BEGIN INIT INFO
|
4
|
+
# Provides: god
|
5
|
+
# Default-Start: 2 3 4 5
|
6
|
+
# Default-Stop: 0 1 6
|
7
|
+
# Short-Description: start and stop god
|
8
|
+
# Description: monitoring by god.
|
9
|
+
### END INIT INFO
|
10
|
+
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
11
|
+
DESC="monitoring daemon"
|
12
|
+
NAME=god
|
13
|
+
DAEMON=/usr/local/bin/$NAME
|
14
|
+
CONFIGFILEDIR=/etc/god
|
15
|
+
PIDFILE=/var/run/god/$NAME.pid
|
16
|
+
LOGFILE=/var/log/god.log
|
17
|
+
SCRIPTNAME=/etc/init.d/$NAME
|
18
|
+
|
19
|
+
# Check if DAEMON binary exist
|
20
|
+
test -f $DAEMON || exit 0
|
21
|
+
|
22
|
+
ARGS="-l $LOGFILE"
|
23
|
+
|
24
|
+
RETVAL=0
|
25
|
+
set -e
|
26
|
+
|
27
|
+
d_start() {
|
28
|
+
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
|
29
|
+
--exec $DAEMON > /dev/null 2>&1 -- $ARGS
|
30
|
+
for file in `ls -1 $CONFIGFILEDIR/*.god`; do $DAEMON load $file; done
|
31
|
+
}
|
32
|
+
|
33
|
+
d_stop() {
|
34
|
+
start-stop-daemon --retry 5 --oknodo --stop --quiet --pidfile /var/run/$NAME.pid \
|
35
|
+
--exec $DAEMON > /dev/null 2>&1
|
36
|
+
}
|
37
|
+
|
38
|
+
d_reload() {
|
39
|
+
kill -HUP `cat $PIDFILE` || echo -en "\n can't reload"
|
40
|
+
}
|
41
|
+
|
42
|
+
case "$1" in
|
43
|
+
start)
|
44
|
+
echo -n "Starting $DESC: $NAME"
|
45
|
+
d_start
|
46
|
+
echo "."
|
47
|
+
;;
|
48
|
+
stop)
|
49
|
+
echo -n "Stopping $DESC: $NAME"
|
50
|
+
d_stop
|
51
|
+
echo "."
|
52
|
+
;;
|
53
|
+
reload)
|
54
|
+
echo -n "Reloading $DESC configuration..."
|
55
|
+
d_reload
|
56
|
+
echo "."
|
57
|
+
;;
|
58
|
+
restart)
|
59
|
+
echo -n "Restarting $DESC: $NAME"
|
60
|
+
d_stop
|
61
|
+
sleep 5
|
62
|
+
d_start
|
63
|
+
echo "."
|
64
|
+
;;
|
65
|
+
*)
|
66
|
+
echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
|
67
|
+
exit 3
|
68
|
+
;;
|
69
|
+
esac
|
70
|
+
|
71
|
+
exit 0
|
File without changes
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# == God config file
|
2
|
+
# http://god.rubyforge.org/
|
3
|
+
# Authors: Gump and michael@glauche.de
|
4
|
+
#
|
5
|
+
# Config file for god that configures watches for each instance of a thin server for
|
6
|
+
# each thin configuration file found in /etc/thin.
|
7
|
+
# In order to get it working on Ubuntu, I had to make a change to god as noted at
|
8
|
+
# the following blog:
|
9
|
+
# http://blog.alexgirard.com/2007/10/25/ruby-one-line-to-save-god/
|
10
|
+
#
|
11
|
+
require 'yaml'
|
12
|
+
|
13
|
+
config_path = "/etc/mongrel_cluster"
|
14
|
+
|
15
|
+
Dir[config_path + "/*.yml"].each do |file|
|
16
|
+
config = YAML.load_file(file)
|
17
|
+
num_servers = config["servers"] ||= 1
|
18
|
+
|
19
|
+
(0...num_servers).each do |i|
|
20
|
+
# UNIX socket cluster use number 0 to 2 (for 3 servers)
|
21
|
+
# and tcp cluster use port number 3000 to 3002.
|
22
|
+
number = config['port'] + i
|
23
|
+
|
24
|
+
God.watch do |w|
|
25
|
+
w.group = "thin-" + File.basename(file, ".yml")
|
26
|
+
w.name = w.group + "-#{number}"
|
27
|
+
|
28
|
+
w.interval = 30.seconds
|
29
|
+
|
30
|
+
w.uid = config["user"]
|
31
|
+
w.gid = config["group"]
|
32
|
+
|
33
|
+
|
34
|
+
w.start = "mongrel_rails cluster::start -C #{file}"
|
35
|
+
w.start_grace = 10.seconds
|
36
|
+
|
37
|
+
w.stop = "mongrel_rails cluster::stop -C #{file}"
|
38
|
+
w.stop_grace = 10.seconds
|
39
|
+
|
40
|
+
w.restart = "mongrel_rails cluster::restart -C #{file}"
|
41
|
+
|
42
|
+
pid_path = config["cwd"] + "/" + config["pidfile"]
|
43
|
+
ext = File.extname(pid_path)
|
44
|
+
|
45
|
+
w.pid_file = pid_path.gsub(/#{ext}$/, ".#{number}#{ext}")
|
46
|
+
|
47
|
+
w.behavior(:clean_pid_file)
|
48
|
+
|
49
|
+
w.start_if do |start|
|
50
|
+
start.condition(:process_running) do |c|
|
51
|
+
c.interval = 5.seconds
|
52
|
+
c.running = false
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
w.restart_if do |restart|
|
57
|
+
restart.condition(:memory_usage) do |c|
|
58
|
+
c.above = 150.megabytes
|
59
|
+
c.times = [3,5] # 3 out of 5 intervals
|
60
|
+
end
|
61
|
+
|
62
|
+
restart.condition(:cpu_usage) do |c|
|
63
|
+
c.above = 50.percent
|
64
|
+
c.times = 5
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
w.lifecycle do |on|
|
69
|
+
on.condition(:flapping) do |c|
|
70
|
+
c.to_state = [:start, :restart]
|
71
|
+
c.times = 5
|
72
|
+
c.within = 5.minutes
|
73
|
+
c.transition = :unmonitored
|
74
|
+
c.retry_in = 10.minutes
|
75
|
+
c.retry_times = 5
|
76
|
+
c.retry_within = 2.hours
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
God.watch do |w|
|
2
|
+
w.name = "mysql"
|
3
|
+
w.interval = 30.seconds # default
|
4
|
+
w.start = "/etc/init.d/mysql start"
|
5
|
+
w.stop = "/etc/init.d/mysql stop"
|
6
|
+
w.restart = "/etc/init.d/mysql restart"
|
7
|
+
w.start_grace = 20.seconds
|
8
|
+
w.restart_grace = 20.seconds
|
9
|
+
w.pid_file = "/var/run/mysqld/mysqld.pid"
|
10
|
+
|
11
|
+
w.behavior(:clean_pid_file)
|
12
|
+
|
13
|
+
# determine the state on startup
|
14
|
+
w.transition(:init, { true => :up, false => :start }) do |on|
|
15
|
+
on.condition(:process_running) do |c|
|
16
|
+
c.running = true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# determine when process has finished starting
|
21
|
+
w.transition([:start, :restart], :up) do |on|
|
22
|
+
on.condition(:process_running) do |c|
|
23
|
+
c.running = true
|
24
|
+
end
|
25
|
+
# failsafe
|
26
|
+
on.condition(:tries) do |c|
|
27
|
+
c.times = 8
|
28
|
+
c.within = 2.minutes
|
29
|
+
c.transition = :start
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# start if process is not running
|
34
|
+
w.transition(:up, :start) do |on|
|
35
|
+
on.condition(:process_exits)
|
36
|
+
end
|
37
|
+
|
38
|
+
# lifecycle
|
39
|
+
w.lifecycle do |on|
|
40
|
+
on.condition(:flapping) do |c|
|
41
|
+
c.to_state = [:start, :restart]
|
42
|
+
c.times = 5
|
43
|
+
c.within = 1.minute
|
44
|
+
c.transition = :unmonitored
|
45
|
+
c.retry_in = 10.minutes
|
46
|
+
c.retry_times = 5
|
47
|
+
c.retry_within = 2.hours
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
God.watch do |w|
|
2
|
+
w.name = "nginx"
|
3
|
+
w.interval = 30.seconds # default
|
4
|
+
w.start = "service nginx start"
|
5
|
+
w.stop = "service nginx stop"
|
6
|
+
w.restart = "service nginx restart"
|
7
|
+
w.start_grace = 20.seconds
|
8
|
+
w.restart_grace = 20.seconds
|
9
|
+
w.pid_file = "/var/run/nginx/nginx.pid"
|
10
|
+
|
11
|
+
w.behavior(:clean_pid_file)
|
12
|
+
|
13
|
+
# determine the state on startup
|
14
|
+
w.transition(:init, { true => :up, false => :start }) do |on|
|
15
|
+
on.condition(:process_running) do |c|
|
16
|
+
c.running = true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# determine when process has finished starting
|
21
|
+
w.transition([:start, :restart], :up) do |on|
|
22
|
+
on.condition(:process_running) do |c|
|
23
|
+
c.running = true
|
24
|
+
end
|
25
|
+
# failsafe
|
26
|
+
on.condition(:tries) do |c|
|
27
|
+
c.times = 8
|
28
|
+
c.within = 2.minutes
|
29
|
+
c.transition = :start
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# start if process is not running
|
34
|
+
w.transition(:up, :start) do |on|
|
35
|
+
on.condition(:process_exits)
|
36
|
+
end
|
37
|
+
|
38
|
+
w.transition(:up, :restart) do |on|
|
39
|
+
on.condition(:http_response_code) do |c|
|
40
|
+
c.host = 'localhost'
|
41
|
+
c.port = 80
|
42
|
+
c.path = '/monitor.html'
|
43
|
+
c.code_is_not = 200
|
44
|
+
c.timeout = 10.seconds
|
45
|
+
c.times = [3, 5]
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# lifecycle
|
50
|
+
w.lifecycle do |on|
|
51
|
+
on.condition(:flapping) do |c|
|
52
|
+
c.to_state = [:start, :restart]
|
53
|
+
c.times = 5
|
54
|
+
c.within = 1.minute
|
55
|
+
c.transition = :unmonitored
|
56
|
+
c.retry_in = 10.minutes
|
57
|
+
c.retry_times = 5
|
58
|
+
c.retry_within = 2.hours
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|