capper 1.2.4 → 2.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/Gemfile.lock +9 -9
- data/README.rst +3 -0
- data/lib/capper.rb +2 -5
- data/lib/capper/base.rb +1 -0
- data/lib/capper/delayed_job.rb +0 -19
- data/lib/capper/templates/thin.service.erb +11 -0
- data/lib/capper/templates/unicorn.service.erb +12 -0
- data/lib/capper/templates/unicorn.sh.erb +2 -4
- data/lib/capper/templates/uwsgi.service.erb +12 -0
- data/lib/capper/templates/uwsgi.sh.erb +1 -2
- data/lib/capper/thin.rb +11 -29
- data/lib/capper/unicorn.rb +17 -24
- data/lib/capper/utils/systemd.rb +13 -0
- data/lib/capper/uwsgi.rb +16 -23
- data/lib/capper/version.rb +1 -1
- data/lib/capper/whenever.rb +2 -2
- metadata +9 -10
- data/lib/capper/bluepill.rb +0 -43
- data/lib/capper/monit.rb +0 -32
- data/lib/capper/templates/bluepill.sh.erb +0 -11
- data/lib/capper/utils/bluepill.rb +0 -13
- data/lib/capper/utils/monit.rb +0 -13
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
capper (
|
4
|
+
capper (2.0.0.pre1)
|
5
5
|
capistrano (~> 2.12.0)
|
6
6
|
capistrano_colors (~> 0.5.5)
|
7
7
|
dedent
|
@@ -9,7 +9,7 @@ PATH
|
|
9
9
|
rvm-capistrano (~> 1.2.7)
|
10
10
|
|
11
11
|
GEM
|
12
|
-
remote:
|
12
|
+
remote: https://rubygems.org/
|
13
13
|
specs:
|
14
14
|
capistrano (2.12.0)
|
15
15
|
highline
|
@@ -21,13 +21,13 @@ GEM
|
|
21
21
|
dedent (0.0.2)
|
22
22
|
erubis (2.7.0)
|
23
23
|
highline (1.6.15)
|
24
|
-
net-scp (1.0
|
25
|
-
net-ssh (>=
|
26
|
-
net-sftp (2.
|
27
|
-
net-ssh (>= 2.
|
28
|
-
net-ssh (2.6.
|
29
|
-
net-ssh-gateway (1.
|
30
|
-
net-ssh (>=
|
24
|
+
net-scp (1.1.0)
|
25
|
+
net-ssh (>= 2.6.5)
|
26
|
+
net-sftp (2.1.1)
|
27
|
+
net-ssh (>= 2.6.5)
|
28
|
+
net-ssh (2.6.5)
|
29
|
+
net-ssh-gateway (1.2.0)
|
30
|
+
net-ssh (>= 2.6.5)
|
31
31
|
rvm-capistrano (1.2.7)
|
32
32
|
capistrano (>= 2.0.0)
|
33
33
|
|
data/README.rst
CHANGED
@@ -272,6 +272,9 @@ The whenever recipe is a simplified version of whenevers native capistrano
|
|
272
272
|
integration. With one application per user account the whole crontab can be
|
273
273
|
used for whenever. Additionally this recipe take the ``ruby_exec_prefix``
|
274
274
|
setting into account.
|
275
|
+
To define the target servers user the cron role.
|
276
|
+
|
277
|
+
server "app1.example.com", :app, :cron
|
275
278
|
|
276
279
|
node deployment
|
277
280
|
--------
|
data/lib/capper.rb
CHANGED
@@ -9,11 +9,8 @@ include Capper::Utils::Templates
|
|
9
9
|
require 'capper/utils/multistage'
|
10
10
|
include Capper::Utils::Multistage
|
11
11
|
|
12
|
-
require 'capper/utils/
|
13
|
-
include Capper::Utils::
|
14
|
-
|
15
|
-
require 'capper/utils/bluepill'
|
16
|
-
include Capper::Utils::Bluepill
|
12
|
+
require 'capper/utils/systemd'
|
13
|
+
include Capper::Utils::Systemd
|
17
14
|
|
18
15
|
# see https://github.com/capistrano/capistrano/issues/168
|
19
16
|
Capistrano::Configuration::Namespaces::Namespace.class_eval do
|
data/lib/capper/base.rb
CHANGED
@@ -59,6 +59,7 @@ _cset(:bin_path) { File.join(deploy_to, "bin") }
|
|
59
59
|
_cset(:pid_path) { File.join(shared_path, "pids") }
|
60
60
|
_cset(:log_path) { File.join(shared_path, "log") }
|
61
61
|
_cset(:config_path) { File.join(shared_path, "config") }
|
62
|
+
_cset(:units_path) { File.join(deploy_to, ".config/systemd/user") }
|
62
63
|
|
63
64
|
_cset(:releases) { capture("ls -x #{releases_path}", :except => { :no_release => true }).split.sort }
|
64
65
|
_cset(:current_release) { releases.length > 0 ? File.join(releases_path, releases.last) : nil }
|
data/lib/capper/delayed_job.rb
CHANGED
@@ -23,25 +23,6 @@ monit_config "delayed_job", <<EOF.dedent, :roles => :worker
|
|
23
23
|
<% end %>
|
24
24
|
EOF
|
25
25
|
|
26
|
-
bluepill_config "delayed_job", <<EOF, :roles => :worker
|
27
|
-
<% delayed_job_workers.each do |name, range| %>
|
28
|
-
app.process("delayed_job_<%= name %>") do |process|
|
29
|
-
process.group = "delayed_job"
|
30
|
-
|
31
|
-
process.pid_file = "<%= pid_path %>/delayed_job.<%= name %>.pid"
|
32
|
-
process.working_dir = "<%= current_path %>"
|
33
|
-
|
34
|
-
<% if range.nil? %>
|
35
|
-
process.start_command = "<%= delayed_job_script %> start <%= name %>"
|
36
|
-
process.stop_command = "<%= delayed_job_script %> stop <%= name %>"
|
37
|
-
<% else %>
|
38
|
-
process.start_command = "<%= delayed_job_script %> start <%= name %> <%= range.begin %> <%= range.end %>"
|
39
|
-
process.stop_command = "<%= delayed_job_script %> stop <%= name %> <%= range.begin %> <%= range.end %>"
|
40
|
-
<% end %>
|
41
|
-
end
|
42
|
-
<% end %>
|
43
|
-
EOF
|
44
|
-
|
45
26
|
namespace :delayed_job do
|
46
27
|
desc "Generate DelayedJob configuration files"
|
47
28
|
task :setup, :roles => :worker, :except => { :no_release => true } do
|
@@ -31,13 +31,11 @@ kill)
|
|
31
31
|
;;
|
32
32
|
reload)
|
33
33
|
sig HUP && echo reloaded OK && exit 0
|
34
|
-
echo >&2 "Couldn't reload,
|
35
|
-
$CMD
|
34
|
+
echo >&2 "Couldn't reload, process dead?" && exit 1
|
36
35
|
;;
|
37
36
|
upgrade)
|
38
37
|
sig USR2 && exit 0
|
39
|
-
echo >&2 "Couldn't upgrade,
|
40
|
-
$CMD
|
38
|
+
echo >&2 "Couldn't upgrade, process dead?" && exit 1
|
41
39
|
;;
|
42
40
|
addworker)
|
43
41
|
sig TTIN && echo added one worker to the pool OK && exit 0
|
data/lib/capper/thin.rb
CHANGED
@@ -1,31 +1,14 @@
|
|
1
1
|
# these cannot be overriden
|
2
2
|
set(:thin_script) { File.join(bin_path, "thin") }
|
3
|
+
set(:thin_service) { File.join(bin_path, "thin.service") }
|
3
4
|
set(:thin_pidfile) { File.join(pid_path, "thin.pid") }
|
4
5
|
|
5
6
|
_cset(:thin_port, 3000)
|
6
7
|
|
7
8
|
after "deploy:update_code", "thin:setup"
|
8
9
|
after "deploy:restart", "thin:restart"
|
9
|
-
|
10
|
-
|
11
|
-
check process thin
|
12
|
-
with pidfile "<%= thin_pidfile %>"
|
13
|
-
start program = "<%= thin_script %> start" with timeout 60 seconds
|
14
|
-
stop program = "<%= thin_script %> stop"
|
15
|
-
EOF
|
16
|
-
|
17
|
-
bluepill_config "thin", <<EOF, :roles => :app
|
18
|
-
app.process("thin") do |process|
|
19
|
-
process.pid_file = "<%= thin_pidfile %>"
|
20
|
-
process.working_dir = "<%= current_path %>"
|
21
|
-
|
22
|
-
process.start_command = "<%= thin_script %> start"
|
23
|
-
process.start_grace_time = 60.seconds
|
24
|
-
|
25
|
-
process.stop_signals = [:quit, 5.seconds, :quit, 30.seconds, :term, 5.seconds, :kill]
|
26
|
-
process.stop_grace_time = 45.seconds
|
27
|
-
end
|
28
|
-
EOF
|
10
|
+
after "deploy:start", "thin:start"
|
11
|
+
after "deploy:stop", "thin:stop"
|
29
12
|
|
30
13
|
namespace :thin do
|
31
14
|
desc "Generate thin configuration files"
|
@@ -33,26 +16,25 @@ namespace :thin do
|
|
33
16
|
upload_template_file("thin.sh",
|
34
17
|
thin_script,
|
35
18
|
:mode => "0755")
|
19
|
+
upload_template_file("thin.service",
|
20
|
+
thin_service,
|
21
|
+
:mode => "0755")
|
22
|
+
systemctl "daemon-reload"
|
23
|
+
systemctl :enable, :thin
|
36
24
|
end
|
37
25
|
|
38
26
|
desc "Start thin"
|
39
27
|
task :start, :roles => :app, :except => { :no_release => true } do
|
40
|
-
|
28
|
+
systemctl :start, :thin
|
41
29
|
end
|
42
30
|
|
43
31
|
desc "Stop thin"
|
44
32
|
task :stop, :roles => :app, :except => { :no_release => true } do
|
45
|
-
|
33
|
+
systemctl :stop, :thin
|
46
34
|
end
|
47
35
|
|
48
36
|
desc "Restart thin with zero downtime"
|
49
37
|
task :restart, :roles => :app, :except => { :no_release => true } do
|
50
|
-
|
51
|
-
run "#{thin_script} start"
|
52
|
-
end
|
53
|
-
|
54
|
-
desc "Kill thin (this should only be used if all else fails)"
|
55
|
-
task :kill, :roles => :app, :except => { :no_release => true } do
|
56
|
-
run "#{thin_script} kill"
|
38
|
+
systemctl :restart, :thin
|
57
39
|
end
|
58
40
|
end
|
data/lib/capper/unicorn.rb
CHANGED
@@ -4,31 +4,14 @@ _cset(:unicorn_timeout, 30)
|
|
4
4
|
|
5
5
|
# these cannot be overriden
|
6
6
|
set(:unicorn_script) { File.join(bin_path, "unicorn") }
|
7
|
+
set(:unicorn_service) { File.join(units_path, "unicorn.service") }
|
7
8
|
set(:unicorn_config) { File.join(config_path, "unicorn.rb") }
|
8
9
|
set(:unicorn_pidfile) { File.join(pid_path, "unicorn.pid") }
|
9
10
|
|
10
11
|
after "deploy:update_code", "unicorn:setup"
|
11
|
-
after "deploy:restart", "unicorn:
|
12
|
-
|
13
|
-
|
14
|
-
check process unicorn
|
15
|
-
with pidfile "<%= unicorn_pidfile %>"
|
16
|
-
start program = "<%= unicorn_script %> start" with timeout 60 seconds
|
17
|
-
stop program = "<%= unicorn_script %> stop"
|
18
|
-
EOF
|
19
|
-
|
20
|
-
bluepill_config "unicorn", <<EOF, :roles => :app
|
21
|
-
app.process("unicorn") do |process|
|
22
|
-
process.pid_file = "<%= unicorn_pidfile %>"
|
23
|
-
process.working_dir = "<%= current_path %>"
|
24
|
-
|
25
|
-
process.start_command = "<%= unicorn_script %> start"
|
26
|
-
process.start_grace_time = 60.seconds
|
27
|
-
|
28
|
-
process.stop_signals = [:quit, 5.seconds, :quit, 30.seconds, :term, 5.seconds, :kill]
|
29
|
-
process.stop_grace_time = 45.seconds
|
30
|
-
end
|
31
|
-
EOF
|
12
|
+
after "deploy:restart", "unicorn:upgrade"
|
13
|
+
after "deploy:start", "unicorn:start"
|
14
|
+
after "deploy:stop", "unicorn:stop"
|
32
15
|
|
33
16
|
namespace :unicorn do
|
34
17
|
desc "Generate unicorn configuration files"
|
@@ -39,20 +22,30 @@ namespace :unicorn do
|
|
39
22
|
upload_template_file("unicorn.sh",
|
40
23
|
unicorn_script,
|
41
24
|
:mode => "0755")
|
25
|
+
upload_template_file("unicorn.service",
|
26
|
+
unicorn_service,
|
27
|
+
:mode => "0755")
|
28
|
+
systemctl "daemon-reload"
|
29
|
+
systemctl :enable, :unicorn
|
42
30
|
end
|
43
31
|
|
44
32
|
desc "Start unicorn"
|
45
33
|
task :start, :roles => :app, :except => { :no_release => true } do
|
46
|
-
|
34
|
+
systemctl :start, :unicorn
|
47
35
|
end
|
48
36
|
|
49
37
|
desc "Stop unicorn"
|
50
38
|
task :stop, :roles => :app, :except => { :no_release => true } do
|
51
|
-
|
39
|
+
systemctl :stop, :unicorn
|
52
40
|
end
|
53
41
|
|
54
|
-
desc "Restart unicorn
|
42
|
+
desc "Restart unicorn"
|
55
43
|
task :restart, :roles => :app, :except => { :no_release => true } do
|
44
|
+
systemctl :restart, :unicorn
|
45
|
+
end
|
46
|
+
|
47
|
+
desc "Upgrade unicorn with zero downtime"
|
48
|
+
task :upgrade, :roles => :app, :except => { :no_release => true } do
|
56
49
|
run "#{unicorn_script} upgrade"
|
57
50
|
end
|
58
51
|
|
data/lib/capper/uwsgi.rb
CHANGED
@@ -3,31 +3,14 @@ _cset(:uwsgi_worker_processes, 4)
|
|
3
3
|
|
4
4
|
# these cannot be overriden
|
5
5
|
set(:uwsgi_script) { File.join(bin_path, "uwsgi") }
|
6
|
+
set(:uwsgi_service) { File.join(units_path, "uwsgi.service") }
|
6
7
|
set(:uwsgi_config) { File.join(config_path, "uwsgi.xml") }
|
7
8
|
set(:uwsgi_pidfile) { File.join(pid_path, "uwsgi.pid") }
|
8
9
|
|
9
10
|
after "deploy:update_code", "uwsgi:setup"
|
10
|
-
after "deploy:restart", "uwsgi:
|
11
|
-
|
12
|
-
|
13
|
-
check process uwsgi
|
14
|
-
with pidfile "<%= uwsgi_pidfile %>"
|
15
|
-
start program = "<%= uwsgi_script %> start" with timeout 60 seconds
|
16
|
-
stop program = "<%= uwsgi_script %> stop"
|
17
|
-
EOF
|
18
|
-
|
19
|
-
bluepill_config "uwsgi", <<EOF, :roles => :app
|
20
|
-
app.process("uwsgi") do |process|
|
21
|
-
process.pid_file = "<%= uwsgi_pidfile %>"
|
22
|
-
process.working_dir = "<%= current_path %>"
|
23
|
-
|
24
|
-
process.start_command = "<%= uwsgi_script %> start"
|
25
|
-
process.start_grace_time = 60.seconds
|
26
|
-
|
27
|
-
process.stop_signals = [:quit, 5.seconds, :quit, 30.seconds, :term, 5.seconds, :kill]
|
28
|
-
process.stop_grace_time = 45.seconds
|
29
|
-
end
|
30
|
-
EOF
|
11
|
+
after "deploy:restart", "uwsgi:reload"
|
12
|
+
after "deploy:start", "uwsgi:start"
|
13
|
+
after "deploy:stop", "uwsgi:stop"
|
31
14
|
|
32
15
|
namespace :uwsgi do
|
33
16
|
desc "Generate uwsgi configuration files"
|
@@ -38,20 +21,30 @@ namespace :uwsgi do
|
|
38
21
|
upload_template_file("uwsgi.sh",
|
39
22
|
uwsgi_script,
|
40
23
|
:mode => "0755")
|
24
|
+
upload_template_file("uwsgi.service",
|
25
|
+
uwsgi_service,
|
26
|
+
:mode => "0755")
|
27
|
+
systemctl "daemon-reload"
|
28
|
+
systemctl :enable, :uwsgi
|
41
29
|
end
|
42
30
|
|
43
31
|
desc "Start uwsgi"
|
44
32
|
task :start, :roles => :app, :except => { :no_release => true } do
|
45
|
-
|
33
|
+
systemctl :start, :uwsgi
|
46
34
|
end
|
47
35
|
|
48
36
|
desc "Stop uwsgi"
|
49
37
|
task :stop, :roles => :app, :except => { :no_release => true } do
|
50
|
-
|
38
|
+
systemctl :stop, :uwsgi
|
51
39
|
end
|
52
40
|
|
53
41
|
desc "Reload uwsgi"
|
54
42
|
task :restart, :roles => :app, :except => { :no_release => true } do
|
43
|
+
systemctl :restart, :uwsgi
|
44
|
+
end
|
45
|
+
|
46
|
+
desc "Reload uwsgi"
|
47
|
+
task :reload, :roles => :app, :except => { :no_release => true } do
|
55
48
|
run "#{uwsgi_script} reload"
|
56
49
|
end
|
57
50
|
end
|
data/lib/capper/version.rb
CHANGED
data/lib/capper/whenever.rb
CHANGED
@@ -12,7 +12,7 @@ after "deploy:rollback", "whenever:update_crontab"
|
|
12
12
|
|
13
13
|
namespace :whenever do
|
14
14
|
desc "Update application's crontab entries"
|
15
|
-
task :update_crontab do
|
15
|
+
task :update_crontab, :roles => :cron, :on_no_matching_servers => :continue do
|
16
16
|
on_rollback do
|
17
17
|
if previous_release
|
18
18
|
run "cd #{previous_release} && #{whenever_command} #{whenever_update_flags}"
|
@@ -25,7 +25,7 @@ namespace :whenever do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
desc "Remove all entries from application's crontab"
|
28
|
-
task :clear_crontab do
|
28
|
+
task :clear_crontab, :roles => :cron, :on_no_matching_servers => :continue do
|
29
29
|
run "crontab /dev/null"
|
30
30
|
end
|
31
31
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0.pre1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Benedikt Böhm
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: erubis
|
@@ -110,12 +110,10 @@ files:
|
|
110
110
|
- lib/capper.rb
|
111
111
|
- lib/capper/airbrake.rb
|
112
112
|
- lib/capper/base.rb
|
113
|
-
- lib/capper/bluepill.rb
|
114
113
|
- lib/capper/bundler.rb
|
115
114
|
- lib/capper/delayed_job.rb
|
116
115
|
- lib/capper/django.rb
|
117
116
|
- lib/capper/forever.rb
|
118
|
-
- lib/capper/monit.rb
|
119
117
|
- lib/capper/multistage.rb
|
120
118
|
- lib/capper/nave.rb
|
121
119
|
- lib/capper/npm.rb
|
@@ -123,21 +121,22 @@ files:
|
|
123
121
|
- lib/capper/rails.rb
|
124
122
|
- lib/capper/ruby.rb
|
125
123
|
- lib/capper/rvm.rb
|
126
|
-
- lib/capper/templates/bluepill.sh.erb
|
127
124
|
- lib/capper/templates/delayed_job.sh.erb
|
128
125
|
- lib/capper/templates/maintenance.html.erb
|
129
126
|
- lib/capper/templates/manage.py.erb
|
130
127
|
- lib/capper/templates/rails.console.sh.erb
|
128
|
+
- lib/capper/templates/thin.service.erb
|
131
129
|
- lib/capper/templates/thin.sh.erb
|
132
130
|
- lib/capper/templates/unicorn.rb.erb
|
131
|
+
- lib/capper/templates/unicorn.service.erb
|
133
132
|
- lib/capper/templates/unicorn.sh.erb
|
133
|
+
- lib/capper/templates/uwsgi.service.erb
|
134
134
|
- lib/capper/templates/uwsgi.sh.erb
|
135
135
|
- lib/capper/templates/uwsgi.xml.erb
|
136
136
|
- lib/capper/thin.rb
|
137
137
|
- lib/capper/unicorn.rb
|
138
|
-
- lib/capper/utils/bluepill.rb
|
139
|
-
- lib/capper/utils/monit.rb
|
140
138
|
- lib/capper/utils/multistage.rb
|
139
|
+
- lib/capper/utils/systemd.rb
|
141
140
|
- lib/capper/utils/templates.rb
|
142
141
|
- lib/capper/uwsgi.rb
|
143
142
|
- lib/capper/version.rb
|
@@ -158,9 +157,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
157
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
158
|
none: false
|
160
159
|
requirements:
|
161
|
-
- - ! '
|
160
|
+
- - ! '>'
|
162
161
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
162
|
+
version: 1.3.1
|
164
163
|
requirements: []
|
165
164
|
rubyforge_project:
|
166
165
|
rubygems_version: 1.8.24
|
data/lib/capper/bluepill.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
set(:bluepill_script) { File.join(bin_path, "bluepill") }
|
2
|
-
set(:bluepillrc) { "#{latest_release}/.bluepillrc" }
|
3
|
-
|
4
|
-
after "deploy:update_code", "bluepill:setup"
|
5
|
-
before "deploy:restart", "bluepill:start"
|
6
|
-
|
7
|
-
namespace :bluepill do
|
8
|
-
desc "Setup bluepill config"
|
9
|
-
task :setup do
|
10
|
-
servers = find_servers
|
11
|
-
configs = fetch(:bluepill_configs, {})
|
12
|
-
|
13
|
-
upload_template(bluepillrc, :mode => "0644") do |server|
|
14
|
-
config = configs.select do |name, config|
|
15
|
-
roles = config[:options][:roles]
|
16
|
-
if roles.nil?
|
17
|
-
true
|
18
|
-
else
|
19
|
-
[roles].flatten.select do |r|
|
20
|
-
self.roles[r.to_sym].include?(server)
|
21
|
-
end.any?
|
22
|
-
end
|
23
|
-
end.map do |name, config|
|
24
|
-
"# #{name}\n#{config[:body]}"
|
25
|
-
end.join("\n\n")
|
26
|
-
|
27
|
-
<<-EOS.dedent
|
28
|
-
Bluepill.application("#{application}", :base_dir => "#{shared_path}") do |app|
|
29
|
-
#{config}
|
30
|
-
end
|
31
|
-
EOS
|
32
|
-
end
|
33
|
-
|
34
|
-
upload_template_file("bluepill.sh",
|
35
|
-
bluepill_script,
|
36
|
-
:mode => "0755")
|
37
|
-
end
|
38
|
-
|
39
|
-
desc "Load bluepill configuration and start it"
|
40
|
-
task :start, :roles => :app, :except => { :no_release => true } do
|
41
|
-
run "cd #{current_path} && #{bluepill_script} load #{bluepillrc}"
|
42
|
-
end
|
43
|
-
end
|
data/lib/capper/monit.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
set(:monitrc) { "#{deploy_to}/.monitrc.local" }
|
2
|
-
|
3
|
-
after "deploy:update_code", "monit:setup"
|
4
|
-
before "deploy:restart", "monit:reload"
|
5
|
-
|
6
|
-
namespace :monit do
|
7
|
-
desc "Setup monit configuration files"
|
8
|
-
task :setup do
|
9
|
-
configs = fetch(:monit_configs, {})
|
10
|
-
servers = find_servers
|
11
|
-
|
12
|
-
upload_template(monitrc, :mode => "0644") do |server|
|
13
|
-
configs.select do |name, config|
|
14
|
-
roles = config[:options][:roles]
|
15
|
-
if roles.nil?
|
16
|
-
true
|
17
|
-
else
|
18
|
-
[roles].flatten.select do |r|
|
19
|
-
self.roles[r.to_sym].include?(server)
|
20
|
-
end.any?
|
21
|
-
end
|
22
|
-
end.map do |name, config|
|
23
|
-
"# #{name}\n#{config[:body]}"
|
24
|
-
end.join("\n\n")
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
desc "Reload monit configuration"
|
29
|
-
task :reload do
|
30
|
-
run "monit reload &>/dev/null && sleep 1"
|
31
|
-
end
|
32
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
export HOME=<%= deploy_to %>
|
3
|
-
export RAILS_ENV=<%= rails_env rescue "production" %>
|
4
|
-
|
5
|
-
if [[ -e "${HOME}"/.rvm/scripts/rvm ]]; then
|
6
|
-
source "${HOME}"/.rvm/scripts/rvm
|
7
|
-
fi
|
8
|
-
|
9
|
-
cd <%= current_path %> >/dev/null
|
10
|
-
|
11
|
-
exec <%= ruby_exec_prefix %> bluepill -c <%= shared_path %> "$@"
|
data/lib/capper/utils/monit.rb
DELETED