rubber 1.1.6 → 1.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +15 -0
- data/VERSION +1 -1
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +4 -0
- data/generators/vulcanize/templates/apache/config/rubber/role/web_tools/tools-index.html +4 -0
- data/generators/vulcanize/templates/base/config/rubber/common/crontab +1 -0
- data/generators/vulcanize/templates/jetty/config/rubber/deploy-jetty.rb +13 -10
- data/generators/vulcanize/templates/munin/config/rubber/rubber-munin.yml +1 -1
- data/generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml +1 -1
- data/generators/vulcanize/templates/resque/config/rubber/deploy-resque-worker-default.rb +38 -0
- data/generators/vulcanize/templates/resque/config/rubber/deploy-resque.rb +39 -0
- data/generators/vulcanize/templates/resque/config/rubber/role/resque_worker_default/monit-resque_worker_default.conf +19 -0
- data/generators/vulcanize/templates/resque/config/rubber/rubber-resque.yml +10 -0
- data/generators/vulcanize/templates/resque/templates.yml +3 -0
- data/lib/rubber/cloud/aws.rb +2 -2
- metadata +8 -3
data/CHANGELOG
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
1.1.7
|
2
|
+
-----
|
3
|
+
|
4
|
+
Merge branch 'master' of github.com:wr0ngway/rubber <cb39353> [Matt Conway]
|
5
|
+
fix for new security group param name in amazon-ec2 <a9f9b19> [Matt Conway]
|
6
|
+
Only raise an exception if there's a problem. <890837b> [nirvdrum]
|
7
|
+
Merge remote branch 'nirvdrum/resque2' <09fd5b8> [Matt Conway]
|
8
|
+
Merge remote branch 'nirvdrum/master' <0c99d7d> [Matt Conway]
|
9
|
+
use rubygems for crontab too <08d1d51> [Matt Conway]
|
10
|
+
munin needs a mailer for notifications <d933a8c> [Matt Conway]
|
11
|
+
Switched to the Jetty Hightide distribution to get JSP, JTA, and a few other niceties. <6d1b1a9> [Kevin Menard]
|
12
|
+
Bumped passenger version. <79feda0> [Kevin Menard]
|
13
|
+
Allow a configurable number of resque workers. <0587b40> [Kevin Menard]
|
14
|
+
Added support for resque. <67ae003> [Kevin Menard]
|
15
|
+
|
1
16
|
1.1.6
|
2
17
|
-----
|
3
18
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.7
|
@@ -24,6 +24,10 @@
|
|
24
24
|
<% rubber_instances.sort {|a,b| a.name <=> b.name }.each do |ic| %>
|
25
25
|
<li><a href="/monit_<%= ic.name %>/">Monit <%= ic.name %></a></li>
|
26
26
|
<% end %>
|
27
|
+
|
28
|
+
<% if resque_host = rubber_instances.for_role('resque').first %>
|
29
|
+
<li><a href="/resque/">Resque</a></li>
|
30
|
+
<% end %>
|
27
31
|
|
28
32
|
</ul>
|
29
33
|
</body>
|
@@ -8,6 +8,7 @@ MAILTO=<%= rubber_env.admin_email %>
|
|
8
8
|
# don't need to set RUBBER_ENV for each script since we set it for all cron here
|
9
9
|
RUBBER_ENV=<%= RUBBER_ENV %>
|
10
10
|
RAILS_ENV=<%= RUBBER_ENV %>
|
11
|
+
RUBYOPT=rubygems
|
11
12
|
|
12
13
|
# Roll all rails logs at midnight
|
13
14
|
0 0 * * * LOG_DIR=<%= RUBBER_ROOT %>/log <%= RUBBER_ROOT %>/script/cron-rake rubber:rotate_logs
|
@@ -9,23 +9,26 @@ namespace :rubber do
|
|
9
9
|
|
10
10
|
task :custom_install, :roles => :jetty do
|
11
11
|
rubber.sudo_script 'install_jetty', <<-ENDSCRIPT
|
12
|
-
if [[ -z `ls #{rubber_env.
|
13
|
-
wget -q http://
|
14
|
-
tar -zxf jetty-
|
12
|
+
if [[ -z `ls #{rubber_env.jetty_prefix}/jetty-hightide-#{rubber_env.jetty_version} 2> /dev/null` ]]; then
|
13
|
+
wget -q http://dist.codehaus.org/jetty/jetty-hightide-7.0.0/jetty-hightide-#{rubber_env.jetty_version}.tar.gz
|
14
|
+
tar -zxf jetty-hightide-#{rubber_env.jetty_version}.tar.gz
|
15
15
|
|
16
16
|
# Install to appropriate location.
|
17
|
-
mv jetty-
|
18
|
-
|
17
|
+
mv jetty-hightide-#{rubber_env.jetty_version} #{rubber_env.jetty_prefix}
|
18
|
+
rm -f #{rubber_env.jetty_dir}
|
19
|
+
ln -s #{rubber_env.jetty_prefix}/jetty-hightide-#{rubber_env.jetty_version} #{rubber_env.jetty_dir}
|
19
20
|
chmod 744 #{rubber_env.jetty_dir}/bin/*.sh
|
20
21
|
|
21
22
|
# Cleanup the jetty distribution
|
22
|
-
rm #{rubber_env.jetty_dir}/webapps/*
|
23
|
+
rm -r #{rubber_env.jetty_dir}/webapps/*
|
23
24
|
rm -r #{rubber_env.jetty_dir}/contexts/test.d/
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
|
26
|
+
for file in #{rubber_env.jetty_dir}/contexts/*.xml; do
|
27
|
+
mv $file $file.example
|
28
|
+
done
|
29
|
+
|
27
30
|
# Cleanup after ourselves.
|
28
|
-
rm jetty-
|
31
|
+
rm jetty-hightide-#{rubber_env.jetty_version}.tar.gz
|
29
32
|
fi
|
30
33
|
ENDSCRIPT
|
31
34
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
namespace :rubber do
|
2
|
+
|
3
|
+
namespace :resque_worker_default do
|
4
|
+
|
5
|
+
rubber.allow_optional_tasks(self)
|
6
|
+
|
7
|
+
before "deploy:stop", "rubber:resque_worker_default:stop"
|
8
|
+
after "deploy:start", "rubber:resque_worker_default:start"
|
9
|
+
after "deploy:restart", "rubber:resque_worker_default:restart"
|
10
|
+
|
11
|
+
desc "Starts default resque worker"
|
12
|
+
task :start, :roles => :resque_worker_default do
|
13
|
+
as = fetch(:runner, "app")
|
14
|
+
via = fetch(:run_method, :sudo)
|
15
|
+
rubber_env.resque_worker_default_count.times do |i|
|
16
|
+
invoke_command "sh -c 'cd #{current_path}; RAILS_ENV=#{rails_env} QUEUE=* nohup rake resque:work &> log/resque_worker_default_#{i}.log & echo $! > tmp/pids/resque_worker_default_#{i}.pid'", :via => via, :as => as
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Stops default resque worker"
|
21
|
+
task :stop, :roles => :resque_worker_default do
|
22
|
+
as = fetch(:runner, "app")
|
23
|
+
via = fetch(:run_method, :sudo)
|
24
|
+
rubber_env.resque_worker_default_count.times do |i|
|
25
|
+
invoke_command "sh -c 'cd #{current_path} && kill `cat tmp/pids/resque_worker_default_#{i}.pid` && rm -f tmp/pids/resque_worker_default_#{i}.pid; exit 0;'", :via => via, :as => as
|
26
|
+
end
|
27
|
+
|
28
|
+
sleep 11 #wait for process to finish
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "Restarts default resque worker"
|
32
|
+
task :restart, :roles => :resque_worker_default do
|
33
|
+
rubber.resque_worker_default.stop
|
34
|
+
rubber.resque_worker_default.start
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
namespace :rubber do
|
3
|
+
|
4
|
+
namespace :resque do
|
5
|
+
|
6
|
+
rubber.allow_optional_tasks(self)
|
7
|
+
|
8
|
+
after "rubber:install_packages", "rubber:resque:custom_install"
|
9
|
+
|
10
|
+
task :custom_install, :roles => :resque do
|
11
|
+
rubber.sudo_script 'install_resque', <<-ENDSCRIPT
|
12
|
+
if [ -d resque ]; then
|
13
|
+
rm -r resque
|
14
|
+
fi
|
15
|
+
|
16
|
+
git clone git://github.com/defunkt/resque.git
|
17
|
+
|
18
|
+
if [ -d #{rubber_env.resque_web_dir} ]; then
|
19
|
+
rm -r #{rubber_env.resque_web_dir}
|
20
|
+
fi
|
21
|
+
|
22
|
+
mkdir -p #{rubber_env.resque_web_dir}
|
23
|
+
mkdir #{rubber_env.resque_web_dir}/tmp
|
24
|
+
mv resque/config.ru #{rubber_env.resque_web_dir}
|
25
|
+
mv resque/lib/resque/server/* #{rubber_env.resque_web_dir}/
|
26
|
+
|
27
|
+
rm -f /var/www/resque
|
28
|
+
ln -s #{rubber_env.resque_web_dir}/public /var/www/resque
|
29
|
+
ENDSCRIPT
|
30
|
+
end
|
31
|
+
|
32
|
+
after "rubber:setup_app_permissions", "rubber:resque:setup_resque_permissions"
|
33
|
+
|
34
|
+
task :setup_resque_permissions, :roles => :resque do
|
35
|
+
run "chown -R #{rubber_env.app_user}:#{rubber_env.app_user} #{rubber_env.resque_web_dir}/config.ru"
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%
|
2
|
+
@path = '/etc/monit/monit.d/monit-resque_worker_default.conf'
|
3
|
+
%>
|
4
|
+
|
5
|
+
<% rubber_env.resque_worker_default_count.times do |i| %>
|
6
|
+
<%
|
7
|
+
PIDFILE = "#{RUBBER_ROOT}/tmp/pids/resque_worker_default_#{i}.pid"
|
8
|
+
|
9
|
+
start_program = "/usr/bin/sudo -u #{rubber_env.app_user} sh -c 'cd #{RUBBER_ROOT}; RAILS_ENV=#{RUBBER_ENV} QUEUE=* nohup rake resque:work &> log/resque_worker_default_#{i}.log & echo $! > tmp/pids/resque_worker_default_#{i}.pid'"
|
10
|
+
stop_program = "/usr/bin/sudo -u #{rubber_env.app_user} sh -c 'cd #{RUBBER_ROOT} && kill `cat tmp/pids/resque_worker_default_#{i}.pid` && rm -f tmp/pids/resque_worker_default_#{i}.pid'"
|
11
|
+
%>
|
12
|
+
|
13
|
+
check process resque_worker_default_<%= i %> with pidfile <%= PIDFILE %>
|
14
|
+
group resque_worker_default
|
15
|
+
start program = "<%= start_program %>"
|
16
|
+
stop program = "<%= stop_program %>"
|
17
|
+
|
18
|
+
if totalmem > 200.0 MB for 5 cycles then restart
|
19
|
+
<% end %>
|
data/lib/rubber/cloud/aws.rb
CHANGED
@@ -17,7 +17,7 @@ module Rubber
|
|
17
17
|
|
18
18
|
|
19
19
|
def create_instance(ami, ami_type, security_groups, availability_zone)
|
20
|
-
response = @ec2.run_instances(:image_id => ami, :key_name => @aws_env.key_name, :instance_type => ami_type, :
|
20
|
+
response = @ec2.run_instances(:image_id => ami, :key_name => @aws_env.key_name, :instance_type => ami_type, :security_group => security_groups, :availability_zone => availability_zone)
|
21
21
|
instance_id = response.instancesSet.item[0].instanceId
|
22
22
|
return instance_id
|
23
23
|
end
|
@@ -255,7 +255,7 @@ module Rubber
|
|
255
255
|
|
256
256
|
def destroy_image(image_id)
|
257
257
|
image = describe_images(image_id).first
|
258
|
-
raise "Could not find image: #{image_id}, aborting destroy_image"
|
258
|
+
raise "Could not find image: #{image_id}, aborting destroy_image" if image.nil?
|
259
259
|
image_location = image[:location]
|
260
260
|
bucket = image_location.split('/').first
|
261
261
|
image_name = image_location.split('/').last.gsub(/\.manifest\.xml$/, '')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Conway
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-22 00:00:00 -05:00
|
13
13
|
default_executable: vulcanize
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.7.8
|
34
34
|
version:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: aws-s3
|
@@ -219,6 +219,11 @@ files:
|
|
219
219
|
- generators/vulcanize/templates/redis/config/rubber/role/redis/redis.conf
|
220
220
|
- generators/vulcanize/templates/redis/config/rubber/rubber-redis.yml
|
221
221
|
- generators/vulcanize/templates/redis/templates.yml
|
222
|
+
- generators/vulcanize/templates/resque/config/rubber/deploy-resque-worker-default.rb
|
223
|
+
- generators/vulcanize/templates/resque/config/rubber/deploy-resque.rb
|
224
|
+
- generators/vulcanize/templates/resque/config/rubber/role/resque_worker_default/monit-resque_worker_default.conf
|
225
|
+
- generators/vulcanize/templates/resque/config/rubber/rubber-resque.yml
|
226
|
+
- generators/vulcanize/templates/resque/templates.yml
|
222
227
|
- generators/vulcanize/templates/sphinx/config/rubber/common/sphinx.yml
|
223
228
|
- generators/vulcanize/templates/sphinx/config/rubber/deploy-sphinx.rb
|
224
229
|
- generators/vulcanize/templates/sphinx/config/rubber/role/sphinx/crontab
|