sml-rubber 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.3
1
+ 0.9.4
@@ -5,23 +5,48 @@ namespace :rubber do
5
5
 
6
6
  rubber.allow_optional_tasks(self)
7
7
 
8
- after "rubber:base:install_rubygems", "rubber:passenger:custom_install"
8
+ after "rubber:install_gems", "rubber:passenger:custom_install"
9
9
 
10
10
  task :custom_install, :roles => :web do
11
11
  rubber.sudo_script 'install_passenger', <<-ENDSCRIPT
12
- TMPDIR=`mktemp -d` || exit 1
13
- cd $TMPDIR
14
- # download and install current HEAD of passenger
15
- wget -q --output-document=passenger.tgz http://github.com/FooBarWidget/passenger/tarball/master
16
- tar -xvf passenger.tgz --strip-components 1
17
- rake package:gem && gem install pkg/*gem --no-rdoc --no-ri
18
12
  echo -en "\n\n\n\n" | passenger-install-apache2-module
19
- wget -q http://rubyforge.org/frs/download.php/41041/ruby-enterprise_1.8.6-20080810-i386.deb
20
- dpkg -i ruby-enterprise_1.8.6-20080810-i386.deb
21
- # enable needed apache modules / disable ubuntu default site
22
- a2enmod rewrite
13
+ wget -q http://rubyforge.org/frs/download.php/58679/ruby-enterprise_1.8.6-20090610_i386.deb
14
+ dpkg -i ruby-enterprise_1.8.6-20090610_i386.deb
15
+ # disable ubuntu default site
23
16
  a2dissite default
24
17
  ENDSCRIPT
25
18
  end
19
+
20
+ # serial_task can only be called after roles defined - not normally a problem, but
21
+ # rubber auto-roles don't get defined till after all tasks are defined
22
+ on :load do
23
+ rubber.serial_task self, :serial_restart, :roles => :web do
24
+ run "/etc/init.d/apache2 restart"
25
+ end
26
+ rubber.serial_task self, :serial_reload, :roles => :web do
27
+ run "if ! ps ax | grep -v grep | grep -c apache2 &> /dev/null; then /etc/init.d/apache2 start; else /etc/init.d/apache2 reload; fi"
28
+ end
29
+ end
30
+
31
+ desc "Stops the apache web server"
32
+ task :stop, :roles => :web, :on_error => :continue do
33
+ run "/etc/init.d/apache2 stop"
34
+ end
35
+
36
+ desc "Starts the apache web server"
37
+ task :start, :roles => :web do
38
+ run "/etc/init.d/apache2 start"
39
+ end
40
+
41
+ desc "Restarts the apache web server"
42
+ task :restart, :roles => :web do
43
+ serial_restart
44
+ end
45
+
46
+ desc "Reloads the apache web server"
47
+ task :reload, :roles => :web do
48
+ serial_reload
49
+ end
50
+
26
51
  end
27
52
  end
@@ -2,7 +2,7 @@
2
2
  @path = '/etc/apache2/mods-available/passenger.conf'
3
3
  @post = 'cd /etc/apache2/mods-enabled && ln -fs ../mods-available/passenger.conf && /etc/init.d/apache2 restart'
4
4
  %>
5
- LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.1.0/ext/apache2/mod_passenger.so
6
- PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.1.0
5
+ LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so
6
+ PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4
7
7
  PassengerRuby /opt/ruby-enterprise/bin/ruby
8
8
  PassengerUseGlobalQueue on
@@ -0,0 +1,27 @@
1
+ <%
2
+ @path = "/etc/apache2/sites-available/#{rubber_env.app_name}"
3
+ @post = "a2enmod rewrite && a2ensite #{rubber_env.app_name} && /etc/init.d/apache2 reload"
4
+ %>
5
+ <VirtualHost *:80>
6
+ ServerName <%= rubber_env.domain %>
7
+ ServerAlias <%= rubber_env.web_aliases.join(" ") %>
8
+ DocumentRoot <%= RUBBER_ROOT + "/public" %>
9
+
10
+ ErrorDocument 404 /404.html
11
+ ErrorDocument 500 /500.html
12
+
13
+ SetEnvIf User-Agent "^(.*MSIE.*)|(.*AppleWebKit.*)$" nokeepalive
14
+
15
+ RailsEnv <%= RUBBER_ENV %>
16
+ RailsAllowModRewrite on
17
+
18
+ RewriteEngine On
19
+ RewriteCond %{HTTP_HOST} ^<%= rubber_env.domain %>$
20
+ RewriteRule ^(.*)$ http://www.<%= rubber_env.domain %>$1 [R,L]
21
+
22
+ # Include <%= RUBBER_ROOT + "/public" %>/config/apache/rewrites.conf
23
+
24
+ RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
25
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.html
26
+ RewriteRule ^.*$ /system/maintenance.html [L]
27
+ </VirtualHost>
@@ -1,4 +1,4 @@
1
1
  roles:
2
2
  web:
3
3
  packages: [apache2-mpm-prefork apache2-prefork-dev]
4
- gems: [fastthread rack]
4
+ gems: [fastthread, rack, [passenger, 2.2.4]]
@@ -1 +1 @@
1
- description: Phusion Passenger module
1
+ description: Phusion Passenger module (Apache2)
@@ -15,6 +15,15 @@ namespace :rubber do
15
15
  instance_alias = ENV['ALIAS'] = rubber.get_env("ALIAS", "Hostname to use for staging instance", true, RUBBER_ENV)
16
16
  default_roles = rubber_cfg.environment.bind().staging_roles || "*"
17
17
  roles = ENV['ROLES'] = rubber.get_env("ROLES", "Roles to use for staging instance", true, default_roles)
18
+
19
+ # some bootstraps update code (bootstrap_db) but if you don't have that role, need to do it here
20
+ # Since release directory variable gets reused by cap, we have to just do the symlink here - doing
21
+ # a update again will fail
22
+ set :rubber_code_was_updated, false
23
+ after "deploy:update_code" do
24
+ set :rubber_code_was_updated, true
25
+ end
26
+
18
27
  if rubber_cfg.instance[instance_alias]
19
28
  logger.info "Instance already exists, skipping to bootstrap"
20
29
  else
@@ -23,9 +32,9 @@ namespace :rubber do
23
32
  rubber.bootstrap
24
33
  # stop everything in case we have a bundled instance with monit, etc starting at boot
25
34
  deploy.stop rescue nil
26
- # bootstrap_db does setup/update_code, so since release directory
27
- # variable gets reused by cap, we have to just do the symlink here - doing
28
- # a update again will fail
35
+ if ! rubber_code_was_updated
36
+ deploy.update_code
37
+ end
29
38
  deploy.symlink
30
39
  deploy.migrate
31
40
  deploy.start
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sml-rubber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
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-07-10 00:00:00 -07:00
12
+ date: 2009-08-07 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -177,6 +177,7 @@ files:
177
177
  - generators/vulcanize/templates/nginx/templates.yml
178
178
  - generators/vulcanize/templates/passenger/config/rubber/deploy-passenger.rb
179
179
  - generators/vulcanize/templates/passenger/config/rubber/role/web/passenger.conf
180
+ - generators/vulcanize/templates/passenger/config/rubber/role/web/vhost.conf
180
181
  - generators/vulcanize/templates/passenger/config/rubber/rubber-passenger.yml
181
182
  - generators/vulcanize/templates/passenger/templates.yml
182
183
  - generators/vulcanize/templates/sphinx/config/rubber/common/sphinx.yml
@@ -214,6 +215,7 @@ files:
214
215
  - lib/rubber/util.rb
215
216
  has_rdoc: false
216
217
  homepage: http://github.com/wr0ngway/rubber
218
+ licenses:
217
219
  post_install_message:
218
220
  rdoc_options:
219
221
  - --charset=UTF-8
@@ -234,7 +236,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
236
  requirements: []
235
237
 
236
238
  rubyforge_project: rubber
237
- rubygems_version: 1.2.0
239
+ rubygems_version: 1.3.5
238
240
  signing_key:
239
241
  specification_version: 3
240
242
  summary: A capistrano plugin for managing multi-instance deployments to the cloud (ec2)