rubber 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|