capitate 0.2.11 → 0.2.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/History.txt +9 -0
  2. data/Manifest.txt +11 -1
  3. data/lib/capitate/cap_ext/connections.rb +15 -8
  4. data/lib/capitate/cap_ext/run_via.rb +2 -0
  5. data/lib/capitate/cap_ext/variables.rb +9 -2
  6. data/lib/capitate/plugins/base.rb +17 -12
  7. data/lib/capitate/plugins/build.rb +14 -11
  8. data/lib/capitate/plugins/prompt.rb +6 -8
  9. data/lib/capitate/plugins/script.rb +6 -4
  10. data/lib/capitate/plugins/templates.rb +16 -7
  11. data/lib/capitate/plugins/upload.rb +2 -1
  12. data/lib/capitate/plugins/utils.rb +7 -5
  13. data/lib/capitate/task_node.rb +30 -32
  14. data/lib/capitate/version.rb +1 -1
  15. data/lib/recipes/backgroundrb.rb +18 -4
  16. data/lib/recipes/centos/backgroundrb.rb +10 -3
  17. data/lib/recipes/centos/centos.rb +21 -8
  18. data/lib/recipes/centos/imagemagick.rb +4 -1
  19. data/lib/recipes/centos/memcached.rb +26 -8
  20. data/lib/recipes/centos/mongrel_cluster.rb +33 -13
  21. data/lib/recipes/centos/monit.rb +32 -11
  22. data/lib/recipes/centos/mysql.rb +7 -2
  23. data/lib/recipes/centos/nginx.rb +29 -10
  24. data/lib/recipes/centos/ruby.rb +11 -2
  25. data/lib/recipes/centos/sphinx.rb +32 -10
  26. data/lib/recipes/docs.rb +12 -7
  27. data/lib/recipes/logrotate/backgroundrb.rb +25 -0
  28. data/lib/recipes/logrotated.rb +18 -12
  29. data/lib/recipes/memcached.rb +0 -25
  30. data/lib/recipes/monit/backgroundrb.rb +39 -0
  31. data/lib/recipes/monit/memcached.rb +22 -0
  32. data/lib/recipes/{mongrel_cluster.rb → monit/mongrel_cluster.rb} +22 -12
  33. data/lib/recipes/monit/mysql.rb +21 -0
  34. data/lib/recipes/monit/nginx.rb +34 -0
  35. data/lib/recipes/monit/sphinx.rb +29 -0
  36. data/lib/recipes/monit/sshd.rb +27 -0
  37. data/lib/recipes/monit.rb +18 -3
  38. data/lib/recipes/mysql.rb +22 -32
  39. data/lib/recipes/nginx.rb +15 -30
  40. data/lib/recipes/rails.rb +17 -6
  41. data/lib/recipes/sphinx.rb +11 -24
  42. data/lib/recipes/sshd.rb +4 -22
  43. data/lib/recipes/syslogd.rb +4 -0
  44. data/lib/templates/backgroundrb/backgroundrb.monitrc.erb +4 -0
  45. data/lib/templates/backgroundrb/backgroundrb.yml.erb +4 -0
  46. data/website/index.html +10 -2
  47. data/website/javascripts/code_highlighter.js +188 -0
  48. data/website/javascripts/ruby.js +18 -0
  49. data/website/stylesheets/screen.css +116 -23
  50. data/website/template.rhtml +9 -1
  51. data/website/template_recipe.rhtml +12 -1
  52. metadata +13 -3
@@ -5,19 +5,37 @@ namespace :memcached do
5
5
  desc <<-DESC
6
6
  Install memcached.
7
7
 
8
- *memcached_build_options*: Memcached build options.\n
8
+ <dl>
9
+ <dt>memcached_build_options</dt>
10
+ <dd>Memcached build options.</dd>
11
+ <dd>
9
12
  <pre>
13
+ <code class="ruby">
10
14
  set :memcached_build_options, {
11
15
  :url => "http://www.danga.com/memcached/dist/memcached-1.2.4.tar.gz",
12
16
  :configure_options => "--prefix=/usr/local"
13
17
  }
14
- </pre>\n
15
- *memcached_memory*: Memcached memory (in MB).\n
16
- @set :memcached_memory, 64@\n
17
- *memcached_pid_path*: Path to memcached pid file. Defaults to /var/run/memcached.pid\n
18
- @set :memcached_pid_path, "/var/run/memcached.pid"@\n
19
- *memcached_port*: Memcached port. Defaults to 11211.\n
20
- @set :memcached_port, 11211@\n
18
+ </code>
19
+ </pre>
20
+ </dd>
21
+
22
+
23
+ <dt>memcached_memory</dt>
24
+ <dd>Memcached memory (in MB).</dd>
25
+ <dd>@set :memcached_memory, 64@</dd>
26
+
27
+ <dt>memcached_pid_path*</dt>
28
+ <dd>Path to memcached pid file.</dd>
29
+ <dd class="default">Defaults to @/var/run/memcached.pid@</dd>
30
+ <dd>@set :memcached_pid_path, "/var/run/memcached.pid"@</dd>
31
+
32
+ <dt>memcached_port</dt>
33
+ <dd>Memcached port<dd>
34
+ <dd class="default">Defaults to 11211.</dd>
35
+ <dd>@set :memcached_port, 11211@</dd>
36
+
37
+ </dl>
38
+ "Source":#{link_to_source(__FILE__)}
21
39
  DESC
22
40
  task :install do
23
41
 
@@ -6,19 +6,39 @@ namespace :mongrel do
6
6
 
7
7
  desc <<-DESC
8
8
  Create mongrel cluster.
9
-
10
- *mongrel_size*: Number of mongrels.\n
11
- @set :mongrel_size, 3@\n
12
- *mongrel_port*: Starting port for mongrels. If there are 3 mongrels with port 9000,
13
- then instances will be at 9000, 9001, and 9002\n
14
- @set :mongrel_port, 9000@\n
15
- *mongrel_config_dir*: Directory for mongrel config. _Defaults to "[shared_path]/config/mongrel"_
16
- *mongrel_pid_dir*: Directory for mongrel pids. _Defaults to "[shared_path]/pids"
17
- *mongrel_config_script*: Config script to load with mongrel. _Defaults to nil_\n
18
- @set :mongrel_config_script, "config/mongrel_handler.rb"@\n
19
- *mongrel_cluster_command*: Mongrel cluster command. _Defaults to mongrel_cluster_ctl_
20
- *mongrel_initscript_name*: Mongrel initscript name. _Defaults to mongrel_cluster_\#{application}_
21
- *mongrel_config_options*: Config options appended to cluster yml. _Defaults to <tt>{}</tt>_
9
+
10
+ <dl>
11
+ <dt>mongrel_size</dt><dd>Number of mongrels</dd>
12
+ <dd>@set :mongrel_size, 3@</dd>
13
+
14
+ <dt>mongrel_port</dt><dd>Starting port for mongrels. If there are 3 mongrels with port 9000,
15
+ then instances will be at 9000, 9001, and 9002</dd>
16
+ <dd>@set :mongrel_port, 9000@</dd>
17
+
18
+ <dt>mongrel_config_dir</dt>
19
+ <dd>Directory for mongrel config.</dd>
20
+ <dd class="default">Defaults to @\#{shared_path}/config/mongrel@</dd>
21
+
22
+ <dt>mongrel_pid_dir</dt><dd>Directory for mongrel pids</dd>
23
+ <dd class="default">Defaults to @\#{shared_path}/pids@</dd>
24
+
25
+ <dt>mongrel_config_script</dt><dd>Config script to load with mongrel</dd>
26
+ <dd class="default">Defaults to @nil@</dd>
27
+ <dd>@set :mongrel_config_script, "config/mongrel_handler.rb"@</dd>
28
+
29
+ <dt>mongrel_cluster_command</dt>
30
+ <dd>Mongrel cluster command.</dd>
31
+ <dd class="default">Defaults to @mongrel_cluster_ctl@</dd>
32
+
33
+ <dt>mongrel_initscript_name</dt><dd>Mongrel initscript name.</dd>
34
+ <dd class="default">Defaults to @mongrel_cluster_\#{application}@</dd>
35
+
36
+ <dt>mongrel_config_options</dt>
37
+ <dd>Config options appended to cluster yml.</dd>
38
+ <dd class="default">Defaults to @{}@</dd>
39
+
40
+ </dl>
41
+ "Source":#{link_to_source(__FILE__)}
22
42
  DESC
23
43
  task :setup do
24
44
 
@@ -5,17 +5,38 @@ namespace :monit do
5
5
  desc <<-DESC
6
6
  Install monit.
7
7
 
8
- *monit_build_options*: Monit build options.\n
9
- @set :monit_build_options, { :url => "http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz" }@\n
10
- *monit_port*: Monit port. _Defaults to 2812_\n
11
- @set :monit_port, 2812@\n
12
- *monit_password*: Monit password. _Defaults to password prompt_\n
13
- @set :monit_password, prompt.password('Monit admin password (to set): ')@\n
14
- *monit_conf_dir*: Directory for monitrc files.\n
15
- @set :monit_conf_dir, "/etc/monit"@\n
16
- *monit_pid_path*: Path to monit pid.\n
17
- @set :monit_pid_path, "/var/run/monit.pid"@\n
18
- *monit_log_path*: Path to monit log file.\n _Defaults to <tt>/var/log/monit.log</tt>_
8
+ <dl>
9
+ <dt>monit_build_options</dt>
10
+ <dd>Monit build options.</dd>
11
+
12
+ <pre>
13
+ <code class="ruby">
14
+ set :monit_build_options, { :url => "http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz" }
15
+ </code>
16
+ </pre>
17
+
18
+ <dt>monit_port</dt>
19
+ <dd>Monit port</dd>
20
+ <dd class="default">Defaults to @2812@</dd>
21
+ <dd>@set :monit_port, 2812@</dd>
22
+
23
+ <dt>monit_password</dt>
24
+ <dd>Monit password</dd>
25
+ <dd class="default">Defaults to password prompt</dd>
26
+ <dd>@set :monit_password, prompt.password('Monit admin password (to set): ')@</dd>
27
+
28
+ <dt>monit_conf_dir</dt><dd>Directory for monitrc files.</dd>
29
+ <dd>@set :monit_conf_dir, "/etc/monit"@</dd>
30
+
31
+ <dt>monit_pid_path</dt><dd>Path to monit pid.</dd>
32
+ @set :monit_pid_path, "/var/run/monit.pid"@</dd>
33
+
34
+ <dt>monit_log_path</dt>
35
+ <dd>Path to monit log file.</dd>
36
+ <dd class="default">Defaults to @/var/log/monit.log@</dd>
37
+
38
+ </dl>
39
+ "Source":#{link_to_source(__FILE__)}
19
40
  DESC
20
41
  task :install do
21
42
 
@@ -5,8 +5,13 @@ namespace :mysql do
5
5
  desc <<-DESC
6
6
  Install mysql.
7
7
 
8
- *mysql_admin_password_set*: Mysql admin password (to set). _Defaults to password prompt._\n
9
- <pre>set :mysql_admin_password_set, prompt.password('Mysql admin password (to set): ')</pre>\n
8
+ <dl>
9
+ <dt>mysql_admin_password_set</dt>
10
+ <dd>Mysql admin password (to set)</dd>
11
+ <dd class="default">Defaults to password prompt.</dd>
12
+ <pre><code class="ruby">set :mysql_admin_password_set, prompt.password('Mysql admin password (to set): ')<code></pre>
13
+ </dl>
14
+ "Source":#{link_to_source(__FILE__)}
10
15
  DESC
11
16
  task :install do
12
17
 
@@ -5,23 +5,42 @@ namespace :nginx do
5
5
  desc <<-DESC
6
6
  Install nginx, conf, initscript, nginx user and service.
7
7
 
8
- *nginx_build_options*: Nginx build options.\n
8
+ <dl>
9
+ <dt>nginx_build_options</dt>
10
+ <dd>Nginx build options.
9
11
  <pre>
12
+ <code class="ruby">
10
13
  set :nginx_build_options, {
11
14
  :url => "http://sysoev.ru/nginx/nginx-0.5.35.tar.gz",
12
15
  :configure_options => "--sbin-path=\#{nginx_bin_path} --conf-path=\#{nginx_conf_path}
13
16
  --pid-path=\#{nginx_pid_path} --error-log-path=/var/log/nginx_master_error.log --lock-path=/var/lock/nginx
14
17
  --prefix=\#{nginx_prefix_path} --with-md5=auto/lib/md5 --with-sha1=auto/lib/sha1 --with-http_ssl_module"
15
18
  }
16
- </pre>\n
17
- *nginx_bin_path*: Nginx sbin path. _Defaults to /sbin/nginx_\n
18
- @set :nginx_bin_path, "/sbin/nginx"@\n
19
- *nginx_conf_path*: Path to nginx conf. _Defaults to /etc/nginx/nginx.conf_\n
20
- @set :nginx_conf_path, "/etc/nginx/nginx.conf"@\n
21
- *nginx_pid_path*: Path to nginx pid file. _Defaults to /var/run/nginx.pid_\n
22
- @set :nginx_pid_path, "/var/run/nginx.pid"@\n
23
- *nginx_prefix_path*: Nginx install prefix. _Defaults to /var/nginx_\n
24
- @set :nginx_prefix_path, "/var/nginx"@\n
19
+ </code>
20
+ </pre>
21
+ </dd>
22
+
23
+ <dt>nginx_bin_path</dt>
24
+ <dd>Nginx sbin path</dd>
25
+ <dd class="default">Defaults to /sbin/nginx</dd>
26
+ <dd>@set :nginx_bin_path, "/sbin/nginx"@</dd>
27
+
28
+ <dt>nginx_conf_path</dt>
29
+ <dd>Path to nginx conf.</dd>
30
+ <dd class="default">Defaults to /etc/nginx/nginx.conf</dd>
31
+ <dd>@set :nginx_conf_path, "/etc/nginx/nginx.conf"@</dd>
32
+
33
+ <dt>nginx_pid_path</dt>
34
+ <dd>Path to nginx pid file</dd>
35
+ <dd class="default">Defaults to /var/run/nginx.pid</dd>
36
+ <dd>@set :nginx_pid_path, "/var/run/nginx.pid"@</dd>
37
+
38
+ <dt>nginx_prefix_path</dt>
39
+ <dd>Nginx install prefix</dd>
40
+ <dd class="default">Defaults to /var/nginx_</dd>
41
+ <dd>@set :nginx_prefix_path, "/var/nginx"@</dd>
42
+ </dl>
43
+ "Source":#{link_to_source(__FILE__)}
25
44
  DESC
26
45
  task :install do
27
46
 
@@ -5,16 +5,25 @@ namespace :ruby do
5
5
  desc <<-DESC
6
6
  Install ruby and rubygems.
7
7
 
8
- *ruby_build_options*: Ruby build options.\n
9
- *rubygems_build_options*: Rubygems build options.\n
8
+ <dl>
9
+ <dt>ruby_build_options</dt>
10
+ <dd>Ruby build options.</dd>
11
+
12
+ <dt>rubygems_build_options<dt>
13
+ <dd>Rubygems build options.</dd>
14
+ </dl>
15
+
10
16
  <pre>
17
+ <code class="ruby">
11
18
  set :ruby_build_options, {
12
19
  :url => "http://capitate.s3.amazonaws.com/ruby-1.8.6-p110.tar.gz",
13
20
  :build_dest => "/usr/src",
14
21
  :configure_options => "--prefix=/usr",
15
22
  :clean => false
16
23
  }
24
+ </code>
17
25
  </pre>
26
+ "Source":#{link_to_source(__FILE__)}
18
27
  DESC
19
28
  task :install do
20
29
 
@@ -4,15 +4,26 @@ namespace :sphinx do
4
4
 
5
5
  desc <<-DESC
6
6
  Install sphinx.\n
7
- *sphinx_build_options*: Sphinx build options.\n
7
+
8
+ <dl>
9
+ <dt>sphinx_build_options</dt>
10
+ <dd>Sphinx build options.</dd>
11
+ <dd>
8
12
  <pre>
13
+ <code class="ruby">
9
14
  set :sphinx_build_options, {
10
15
  :url => "http://www.sphinxsearch.com/downloads/sphinx-0.9.7.tar.gz",
11
16
  :configure_options => "--with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql
12
17
  --prefix=\#{sphinx_prefix}"
13
18
  }
14
- </pre>\n
15
- *sphinx_prefix*: Sphinx install prefix. _Defaults to "/usr/local/sphinx"_\n
19
+ </code>
20
+ </pre>
21
+ </dd>
22
+
23
+ <dt>sphinx_prefix</dt>
24
+ <dd>Sphinx install prefix</dd>
25
+ <dd class="default">Defaults to @/usr/local/sphinx@</dd>
26
+ </dl>
16
27
  DESC
17
28
  task :install do
18
29
 
@@ -28,11 +39,15 @@ namespace :sphinx do
28
39
  end
29
40
 
30
41
  desc <<-DESC
31
- Setup sphinx for application.\n
32
- *sphinx_prefix*: Sphinx install prefix. _Defaults to "/usr/local/sphinx"_\n
33
- *sphinx_pid_path*: Directory to sphinx pid. _Defaults to "[shared_path]/pids/searchd.pid"_\n
34
- *sphinx_conf_path*: Path to sphinx.conf. _Defaults to "[shared_path]/config/sphinx.conf"_\n
35
- *sphinx_index_path*: Path to sphinx indexes. _Defaults to "[shared_path]/var/index"_\n
42
+ Setup sphinx for application.
43
+
44
+ <dl>
45
+ <dt>sphinx_prefix</dt><dd>Sphinx install prefix</dd><dd class="default">Defaults to @/usr/local/sphinx@</dd>
46
+ <dt>sphinx_pid_path</dt><dd>Directory to sphinx pid</dd><dd class="default">Defaults to @\#{shared_path}/pids/searchd.pid@</dd>
47
+ <dt>sphinx_conf_path</dt><dd>Path to sphinx.conf</dd><dd class="default">Defaults to @\#{shared_path}/config/sphinx.conf@</dd>
48
+ <dt>sphinx_index_path</dt><dd>Path to sphinx indexes</dd><dd class="default">Defaults to @\#{shared_path}/var/index@</dd>
49
+ </dl>
50
+ "Source":#{link_to_source(__FILE__)}
36
51
  DESC
37
52
  task :setup do
38
53
 
@@ -57,8 +72,15 @@ namespace :sphinx do
57
72
  desc <<-DESC
58
73
  Install sphinx firewall rule.
59
74
 
60
- *sphinx_port*: Sphinx port. _Defaults to 3312_\n
61
- @set :sphinx_port, 3312@\n
75
+ This doesn't work yet (doesn't insert in right place).
76
+
77
+ <dl>
78
+ <dt>sphinx_portdt>
79
+ <dd>Sphinx port</dd>
80
+ <dd class="default">Defaults to @3312@</dd>
81
+ <dd>@set :sphinx_port, 3312@</dd>
82
+ </dl>
83
+ "Source":#{link_to_source(__FILE__)}
62
84
  DESC
63
85
  task :iptables do
64
86
  # Settings
data/lib/recipes/docs.rb CHANGED
@@ -3,14 +3,19 @@ namespace :docs do
3
3
  desc <<-DESC
4
4
  Generate documentation for all currently loaded recipes. Assumes textile formatting.
5
5
 
6
- *docs_recipes_dir*: Destination directory. _Defaults to "docs/recipes"_
6
+ This recipe generated this documentation.
7
7
 
8
- @set :docs_recipes_dir, "docs/recipes"@
9
-
10
- *docs_recipes_clear*: Whether to clear destination before generating.
11
-
12
- @set :docs_recipes_clear, true@
8
+ <dl>
9
+ <dt>docs_recipes_dir</dd>
10
+ <dd>Destination directory</dd>
11
+ <dd class="default">Defaults to @docs/recipes@</dd>
12
+ <dd>@set :docs_recipes_dir, "docs/recipes"@</dd>
13
13
 
14
+ <dt>docs_recipes_clear</dt>
15
+ <dd>Whether to clear destination before generating.</dd>
16
+ <dd>@set :docs_recipes_clear, true@</dd>
17
+ </dl>
18
+ "Source":#{link_to_source(__FILE__)}
14
19
  DESC
15
20
  task :recipes do
16
21
 
@@ -24,7 +29,7 @@ namespace :docs do
24
29
  FileUtils.rm_rf(docs_recipes_dir) if docs_recipes_clear
25
30
  FileUtils.mkdir_p(docs_recipes_dir)
26
31
 
27
- top_node.write_doc(docs_recipes_dir, "index", "Recipes")
32
+ top_node.write_doc(docs_recipes_dir, "index", "Recipes", :include_source => true)
28
33
 
29
34
  end
30
35
  end
@@ -0,0 +1,25 @@
1
+ namespace :backgroundrb do
2
+
3
+ namespace :logrotate do
4
+
5
+ desc <<-DESC
6
+ Install logrotated conf for backgroundrb.
7
+
8
+ <dl>
9
+ <dt>backgroundrb_logrotate_path<dt>
10
+ <dd>Backgroundrb logrotate paths.</dd>
11
+ <dd class="default">Defaults to @\#{shared_path}/log/backgroundrb*.log@</dd>
12
+ </dl>
13
+ DESC
14
+ task :install do
15
+ fetch_or_default(:backgroundrb_logrotate_path, "#{shared_path}/log/backgroundrb*.log")
16
+
17
+ set :logrotate_name, "backgroundrb_#{application}"
18
+ set :logrotate_log_path, backgroundrb_logrotate_path
19
+ set :logrotate_options, [ { :rotate => 2 }, :weekly, :missingok, :notifempty, :copytruncate ]
20
+
21
+ logrotated.install_conf
22
+ end
23
+ end
24
+
25
+ end
@@ -4,26 +4,32 @@ namespace :logrotated do
4
4
  desc <<-DESC
5
5
  Create logrotated conf. You probably use this in other recipes and not standalone.
6
6
 
7
- *logrotate_name*: Name of file in /etc/logrotate.d/\n
8
- *logrotate_log_path*: Path to log file. Can include wildcards, like /var/log/foo_*.log.\n
7
+ <dl>
8
+ <dt>logrotate_name</dt>
9
+ <dd>Name of file in /etc/logrotate.d/</dd>
9
10
 
10
- *logrotate_options*:
11
- - :rotate (Number of times to rotate before discarding)
12
- - :size (Rotate when file hits this size)
13
- - :daily, :weekly, :monthly (How often to perform rotate)
14
- - :missingok
15
- - :compress
16
- - :delaycompress
17
- - :notifempty
18
- - :copytruncate
11
+ <dt>logrotate_log_path<dt>
12
+ <dd>Path to log file. Can include wildcards, like /var/log/foo_*.log.</dd>
13
+
14
+ <dt>logrotate_options</dt>
15
+ <dd>:rotate (Number of times to rotate before discarding)</dd>
16
+ <dd>:size (Rotate when file hits this size)</dd>
17
+ <dd>:daily, :weekly, :monthly (How often to perform rotate)</dd>
18
+ <dd>:missingok</dd>
19
+ <dd>:compress</dd>
20
+ <dd>:delaycompress</dd>
21
+ <dd>:notifempty</dd>
22
+ <dd>:copytruncate</dd>
19
23
 
20
24
  See man page for all the options.
21
25
 
22
26
  <pre>
27
+ <code class="ruby">
23
28
  set :logrotate_options, [ { :rotate => 7, :size => 10MB },
24
29
  :daily, :missingok, :compress, :delaycompress, :notifempty, :copytruncate ]
30
+ </code>
25
31
  </pre>
26
-
32
+ "Source":#{link_to_source(__FILE__)}
27
33
  DESC
28
34
  task :install_conf do
29
35
 
@@ -21,30 +21,5 @@ namespace :memcached do
21
21
  task :update_code, :roles => :app do
22
22
  run "ln -nfs #{shared_path}/config/memcached.yml #{release_path}/config/memcached.yml"
23
23
  end
24
-
25
- namespace :monit do
26
-
27
- desc <<-DESC
28
- Generate and install memcached monitrc.
29
-
30
- *memcached_pid_path*: Path to memcached pid file. _Defaults to /var/run/memcached.pid_\n
31
- @set :memcached_pid_path, "/var/run/memcached.pid"@\n
32
- *memcached_port*: Memcached port. _Defaults to 11211_\n
33
- @set :memcached_port, 11211@\n
34
- *monit_conf_dir*: Destination for monitrc. _Defaults to "/etc/monit"_\n
35
- @set :monit_conf_dir, "/etc/monit"@\n
36
- DESC
37
- task :install do
38
-
39
- # Settings
40
- fetch_or_default(:memcached_pid_path, "/var/run/memcached.pid")
41
- fetch_or_default(:memcached_port, 11211)
42
- fetch_or_default(:monit_conf_dir, "/etc/monit")
43
24
 
44
- put template.load("memcached/memcached.monitrc.erb"), "/tmp/memcached.monitrc"
45
- run_via "install -o root /tmp/memcached.monitrc #{monit_conf_dir}/memcached.monitrc"
46
- end
47
-
48
- end
49
-
50
25
  end
@@ -0,0 +1,39 @@
1
+ namespace :backgroundrb do
2
+
3
+ namespace :monit do
4
+
5
+ desc <<-DESC
6
+ Generate and install backgroundrb (for application) monitrc.
7
+
8
+ "Source":#{link_to_source(__FILE__)}
9
+ DESC
10
+ task :install do
11
+
12
+ # Settings
13
+ fetch_or_default(:backgroundrb_port, 11006)
14
+ fetch_or_default(:backgroundrb_pid_path, "#{shared_path}/pids/backgroundrb.pid")
15
+ fetch_or_default(:monit_conf_dir, "/etc/monit")
16
+
17
+ utils.install_template("backgroundrb/backgroundrb.monitrc.erb", "#{monit_conf_dir}/backgroundrb.monitrc")
18
+ end
19
+
20
+ desc "Restart backgroundrb (for application)"
21
+ task :restart do
22
+ fetch_or_default(:monit_bin_path, "monit")
23
+ sudo "#{monit_bin_path} restart backgroundrb_#{application}"
24
+ end
25
+
26
+ desc "Start mongrel cluster (for application)"
27
+ task :start do
28
+ fetch_or_default(:monit_bin_path, "monit")
29
+ sudo "#{monit_bin_path} start backgroundrb_#{application}"
30
+ end
31
+
32
+ desc "Stop mongrel cluster (for application)"
33
+ task :stop do
34
+ fetch_or_default(:monit_bin_path, "monit")
35
+ sudo "#{monit_bin_path} stop backgroundrb_#{application}"
36
+ end
37
+ end
38
+
39
+ end
@@ -0,0 +1,22 @@
1
+ namespace :memcached do
2
+
3
+ namespace :monit do
4
+
5
+ desc <<-DESC
6
+ Generate and install memcached monitrc.
7
+ "Source":#{link_to_source(__FILE__)}
8
+ DESC
9
+ task :install do
10
+
11
+ # Settings
12
+ fetch_or_default(:memcached_pid_path, "/var/run/memcached.pid")
13
+ fetch_or_default(:memcached_port, 11211)
14
+ fetch_or_default(:monit_conf_dir, "/etc/monit")
15
+
16
+ put template.load("memcached/memcached.monitrc.erb"), "/tmp/memcached.monitrc"
17
+ run_via "install -o root /tmp/memcached.monitrc #{monit_conf_dir}/memcached.monitrc"
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -7,18 +7,7 @@ namespace :mongrel do
7
7
 
8
8
  desc <<-DESC
9
9
  Create monit configuration for mongrel cluster.
10
-
11
- *mongrel_application*: Name of application (monit group). _Defaults to <tt>"mongrel_cluster_\#{fetch(:application)}"</tt>_
12
- *mongrel_bin_path*: Path to mongrel command. _Defaults to <tt>/usr/bin/mongrel_rails</tt>_
13
- *mongrel_size*: Number of mongrels.\n
14
- @set :mongrel_size, 3@\n
15
- *mongrel_port*: Starting port for mongrels. If there are 3 mongrels with port 9000, then instances
16
- will be at 9000, 9001, and 9002\n
17
- @set :mongrel_port, 9000@\n
18
- *mongrel_config_script*: Config script to load with mongrel. _Defaults to nil_\n
19
- @set :mongrel_config_script, "config/mongrel_handler.rb"@\n
20
- *monit_conf_dir*: Destination for monitrc. _Defaults to "/etc/monit"_\n
21
- @set :monit_conf_dir, "/etc/monit"@\n
10
+ "Source":#{link_to_source(__FILE__)}
22
11
  DESC
23
12
  task :setup do
24
13
 
@@ -68,6 +57,27 @@ namespace :mongrel do
68
57
  sudo "install -o root /tmp/#{mongrel_application}.monitrc #{monit_conf_dir}/#{mongrel_application}.monitrc"
69
58
  end
70
59
 
60
+ desc "Restart mongrel cluster (for application)"
61
+ task :restart do
62
+ fetch_or_default(:monit_bin_path, "monit")
63
+ fetch_or_default(:mongrel_application, Proc.new { "mongrel_cluster_#{fetch(:application)}" })
64
+ sudo "#{monit_bin_path} -g #{mongrel_application} restart all"
65
+ end
66
+
67
+ desc "Start mongrel cluster (for application)"
68
+ task :start do
69
+ fetch_or_default(:monit_bin_path, "monit")
70
+ fetch_or_default(:mongrel_application, Proc.new { "mongrel_cluster_#{fetch(:application)}" })
71
+ sudo "#{monit_bin_path} -g #{mongrel_application} start all"
72
+ end
73
+
74
+ desc "Stop mongrel cluster (for application)"
75
+ task :stop do
76
+ fetch_or_default(:monit_bin_path, "monit")
77
+ fetch_or_default(:mongrel_application, Proc.new { "mongrel_cluster_#{fetch(:application)}" })
78
+ sudo "#{monit_bin_path} -g #{mongrel_application} stop all"
79
+ end
80
+
71
81
  end
72
82
 
73
83
  end
@@ -0,0 +1,21 @@
1
+ namespace :mysql do
2
+
3
+ namespace :monit do
4
+
5
+ desc <<-DESC
6
+ Install mysql monit hooks. "Source":#{link_to_source(__FILE__)}
7
+ DESC
8
+ task :install do
9
+
10
+ # Settings
11
+ fetch_or_default(:mysql_pid_path, "/var/run/mysqld/mysqld.pid")
12
+ fetch_or_default(:mysql_port, 3306)
13
+ fetch_or_default(:monit_conf_dir, "/etc/monit")
14
+
15
+ put template.load("mysql/mysql.monitrc.erb", binding), "/tmp/mysql.monitrc"
16
+ run_via "install -o root /tmp/mysql.monitrc #{monit_conf_dir}/mysql.monitrc"
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,34 @@
1
+ namespace :nginx do
2
+
3
+ namespace :monit do
4
+
5
+ desc <<-DESC
6
+ Install nginx monit hooks.
7
+
8
+ <dl>
9
+
10
+ <dt>nginx_pid_path</dt>
11
+ <dd>Path to nginx pid file</dd>
12
+ <dd>Defaults to /var/run/nginx.pid</dd>
13
+ <dd>@set :nginx_pid_path, "/var/run/nginx.pid"@</dd>
14
+
15
+ <dt>monit_conf_dir</dt>
16
+ <dd>Destination for monitrc.</dd>
17
+ <dd>Defaults to "/etc/monit"</dd>
18
+ <dd>@set :monit_conf_dir, "/etc/monit"@</dd>
19
+ </dl>
20
+ "Source":#{link_to_source(__FILE__)}
21
+ DESC
22
+ task :install do
23
+
24
+ # Settings
25
+ fetch_or_default(:nginx_pid_path, "/var/run/nginx.pid")
26
+ fetch_or_default(:monit_conf_dir, "/etc/monit")
27
+
28
+ put template.load("nginx/nginx.monitrc.erb", binding), "/tmp/nginx.monitrc"
29
+ run_via "install -o root /tmp/nginx.monitrc #{monit_conf_dir}/nginx.monitrc"
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,29 @@
1
+ namespace :sphinx do
2
+
3
+ namespace :monit do
4
+
5
+ desc <<-DESC
6
+ Create monit configuration for sphinx.\n
7
+ *monit_conf_dir*: Destination for monitrc. _Defaults to "/etc/monit"_\n
8
+ *sphinx_pid_path*: Location for sphinx pid. _Defaults to "[shared_path]/pids/searchd.pid"_\n
9
+
10
+ "Source":#{link_to_source(__FILE__)}
11
+ DESC
12
+ task :setup do
13
+
14
+ # Settings
15
+ fetch_or_default(:monit_conf_dir, "/etc/monit")
16
+ fetch_or_default(:sphinx_pid_path, "#{shared_path}/pids/searchd.pid")
17
+
18
+ put template.load("sphinx/sphinx.monitrc.erb"), "/tmp/sphinx_#{application}.monitrc"
19
+ sudo "install -o root /tmp/sphinx_#{application}.monitrc #{monit_conf_dir}/sphinx_#{application}.monitrc"
20
+ end
21
+
22
+ desc "Restart sphinx"
23
+ task :restart do
24
+ sudo "/sbin/service monit restart sphinx_#{application}"
25
+ end
26
+
27
+ end
28
+
29
+ end