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 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.6
1
+ 1.1.7
@@ -59,4 +59,8 @@ Listen <%= rubber_env.web_tools_ssl_port %>
59
59
  ProxyHTMLURLMap / /monit_<%= ic.name %>/
60
60
  <% end %>
61
61
 
62
+ <% if resque_host = rubber_instances.for_role('resque').first %>
63
+ RackBaseURI /resque
64
+ <% end %>
65
+
62
66
  </VirtualHost>
@@ -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.jetty_dir} 2> /dev/null` ]]; then
13
- wget -q http://ftp.osuosl.org/pub/eclipse/jetty/#{rubber_env.jetty_version}/dist/jetty-distribution-#{rubber_env.jetty_version}.tar.gz
14
- tar -zxf jetty-distribution-#{rubber_env.jetty_version}.tar.gz
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-distribution-#{rubber_env.jetty_version} #{rubber_env.jetty_prefix}
18
- ln -s #{rubber_env.jetty_prefix}/jetty-distribution-#{rubber_env.jetty_version} #{rubber_env.jetty_dir}
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
- mv #{rubber_env.jetty_dir}/contexts/demo.xml #{rubber_env.jetty_dir}/contexts/demo.xml.example
25
- mv #{rubber_env.jetty_dir}/contexts/javadoc.xml #{rubber_env.jetty_dir}/contexts/javadoc.xml.example
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-distribution-#{rubber_env.jetty_version}.tar.gz
31
+ rm jetty-hightide-#{rubber_env.jetty_version}.tar.gz
29
32
  fi
30
33
  ENDSCRIPT
31
34
  end
@@ -1,6 +1,6 @@
1
1
  # Uses admin_email from base
2
2
 
3
- packages: [munin-node, munin-plugins-extra]
3
+ packages: [munin-node, munin-plugins-extra, mailx]
4
4
 
5
5
  roles:
6
6
  web_tools:
@@ -1,4 +1,4 @@
1
- passenger_version: 2.2.5
1
+ passenger_version: 2.2.8
2
2
  passenger_root: "#{ruby_prefix}/lib/ruby/gems/1.8/gems/passenger-#{passenger_version}"
3
3
  passenger_ruby: "#{ruby_prefix}/bin/ruby"
4
4
  passenger_lib: "#{passenger_root}/ext/apache2/mod_passenger.so"
@@ -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 %>
@@ -0,0 +1,10 @@
1
+ resque_web_dir: /opt/resque
2
+
3
+ resque_worker_default_count: 5
4
+
5
+ role_dependencies:
6
+ css_validator: [redis]
7
+
8
+ roles:
9
+ resque:
10
+ gems: [redis redis-namespace yajl-ruby sinatra resque]
@@ -0,0 +1,3 @@
1
+ description: The resque background queue system
2
+ dependent_templates:
3
+ - redis
@@ -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, :group_id => security_groups, :availability_zone => availability_zone)
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.6
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-11-13 00:00:00 -05:00
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.5.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