Created
February 19, 2010 19:57
-
-
Save mrinterweb/309134 to your computer and use it in GitHub Desktop.
updating names to be consistent with my other replacements
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "#{File.dirname(__FILE__)}/../../vendor/plugins/moonshine/lib/moonshine.rb" | |
class ApplicationManifest < Moonshine::Manifest::Rails | |
if deploy_stage == 'v1' | |
configure({ | |
:application => 'v1.domainname.com', | |
:deploy_to => '/srv/v1.domainname', | |
:domain => 'v1.domainname.com', | |
:passenger => { | |
:pool_idle_time => 0 | |
} | |
}) | |
elsif deploy_stage == 'demo' | |
configure({ | |
:application => 'demo.domainname.com', | |
:deploy_to => '/srv/demo.domainname', | |
:domain => 'demo.domainname.com' | |
}) | |
elsif deploy_stage == 'v1-staging' | |
configure({ | |
:application => 'v1-staging.domainname.com', | |
:deploy_to => '/srv/v1-staging.domainname', | |
:domain => 'v1-staging.domainname.com' | |
}) | |
else | |
configure({ | |
:application => 'dev.domainname.com', | |
:deploy_to => '/srv/dev.domainname', | |
:domain => 'dev.domainname.com' | |
}) | |
end | |
recipe :default_stack | |
# Add your application's custom requirements here | |
def application_packages | |
package 'libmagickwand-dev', :ensure => :installed | |
package 'sqlite3', :ensure => :installed | |
package 'python-opencv', :ensure => :installed | |
package 'rabbitmq-server', :ensure => :installed | |
package 'pngcrush', :ensure => :installed | |
package 'monit', :ensure => :installed | |
package 'rsync', :ensure => :installed | |
# some_rake_task = "/usr/bin/rake -f #{configuration[:deploy_to]}/current/Rakefile custom:task RAILS_ENV=#{ENV['RAILS_ENV']}" | |
cron 'Run analytics from pinch media task at midnight', | |
:command => "/usr/bin/rake -f #{configuration[:deploy_to]}/current/Rakefile domain:analytics:createAndPopulate RAILS_ENV=#{ENV['RAILS_ENV']}", | |
:user => configuration[:user], | |
:minute => 0, | |
:hour => '*' | |
end | |
# The following line includes the 'application_packages' recipe defined above | |
recipe :application_packages | |
plugin :god | |
recipe :god | |
plugin :memcached | |
recipe :memcached | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set :stages, %w(v1 demo v1-staging dev) | |
require 'capistrano/ext/multistage' | |
set :default_stage, "dev" | |
# Other unrelated settings omitted |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server "dev.domainname.com", :app, :web, :db, :primary => true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## The important thing to note when looking at this dump is that it is trying to use /srv/dev.domainname instead of | |
## /srv/v1-staging.domainname when trying to deploy to v1-staging | |
➜ rails cap v1-staging deploy | |
triggering start callbacks for `v1-staging' | |
* executing `moonshine:configure' | |
* executing `v1-staging' | |
triggering start callbacks for `deploy' | |
* executing `moonshine:configure' | |
* executing `multistage:ensure' | |
* executing `deploy' | |
* executing `deploy:update' | |
** transaction: start | |
* executing `deploy:update_code' | |
updating the cached checkout on all servers | |
executing locally: "svn info http://svn.somedomain.com/repos/release_name/rails/trunk/domainname --username myusername --password somepassword --no-auth-cache -rHEAD" | |
* executing "if [ -d /srv/dev.domainname/shared/cached-copy ]; then svn update -q --username myusername --password somepassword --no-auth-cache -r1399 /srv/dev.domainname/shared/cached-copy; else svn checkout -q --username myusername --password somepassword --no-auth-cache -r1399 http://svn.somedomain.com/repos/release_name/rails/trunk/domainname /srv/dev.domainname/shared/cached-copy; fi" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
copying the cached version to /srv/dev.domainname/releases/20100219195856 | |
* executing "cp -RPp /srv/dev.domainname/shared/cached-copy /srv/dev.domainname/releases/20100219195856 && (echo 1399 > /srv/dev.domainname/releases/20100219195856/REVISION)" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing `deploy:finalize_update' | |
* executing "chmod -R g+w /srv/dev.domainname/releases/20100219195856" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing "rm -rf /srv/dev.domainname/releases/20100219195856/log /srv/dev.domainname/releases/20100219195856/public/system /srv/dev.domainname/releases/20100219195856/tmp/pids &&\\\n mkdir -p /srv/dev.domainname/releases/20100219195856/public &&\\\n mkdir -p /srv/dev.domainname/releases/20100219195856/tmp &&\\\n ln -s /srv/dev.domainname/shared/log /srv/dev.domainname/releases/20100219195856/log &&\\\n ln -s /srv/dev.domainname/shared/system /srv/dev.domainname/releases/20100219195856/public/system &&\\\n ln -s /srv/dev.domainname/shared/pids /srv/dev.domainname/releases/20100219195856/tmp/pids" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing "find /srv/dev.domainname/releases/20100219195856/public/images /srv/dev.domainname/releases/20100219195856/public/stylesheets /srv/dev.domainname/releases/20100219195856/public/javascripts -exec touch -t 201002191959.19 {} ';'; true" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
triggering after callbacks for `deploy:finalize_update' | |
* executing `local_config:upload' | |
* executing `local_config:symlink' | |
* executing `shared_config:symlink' | |
* executing `app:symlinks:update' | |
* executing "ln -nfs /srv/dev.domainname/shared/public/assets /srv/dev.domainname/releases/20100219195856/public/assets" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
triggering after callbacks for `deploy:update_code' | |
* executing "rm -rf /srv/dev.domainname/releases/20100219195856/tmp/analytics" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing "ruby -e 'Dir.mkdir( File.join(\"/srv/dev.domainname/shared\", \"analytics\") ) unless Dir.new(\"/srv/dev.domainname/shared\").include?(\"analytics\")'" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing "ln -s /srv/dev.domainname/shared/analytics /srv/dev.domainname/releases/20100219195856/tmp/analytics" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing "rm -rf /srv/dev.domainname/releases/20100219195856/public/assets" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing "ruby -e 'Dir.mkdir( File.join(\"/srv/dev.domainname/shared\", \"assets\") ) unless Dir.new(\"/srv/dev.domainname/shared\").include?(\"assets\")'" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing "ln -s /srv/dev.domainname/shared/assets /srv/dev.domainname/releases/20100219195856/public/assets" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing "ln -nfs /srv/dev.domainname/releases/20100219195856/config/database.v1-staging.yml /srv/dev.domainname/releases/20100219195856/config/database.yml" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
* executing `deploy:symlink' | |
triggering before callbacks for `deploy:symlink' | |
* executing `moonshine:apply' | |
* executing "sudo -p 'sudo password: ' RAILS_ROOT=/srv/dev.domainname/releases/20100219195856 DEPLOY_STAGE=v1-staging RAILS_ENV=production shadow_puppet /srv/dev.domainname/releases/20100219195856/app/manifests/application_manifest.rb" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
** [out :: v1-staging.domainname.com] DEPRECATION WARNING: explicitly using plugins are now deprecated, as they are automatically loaded now. (called from /srv/dev.domainname/releases/20100219195856/app/manifests/application_manifest.rb:97) | |
** [out :: v1-staging.domainname.com] DEPRECATION WARNING: explicitly using plugins are now deprecated, as they are automatically loaded now. (called from /srv/dev.domainname/releases/20100219195856/app/manifests/application_manifest.rb:99) | |
** [out :: v1-staging.domainname.com] Uncaught exception | |
** [out :: v1-staging.domainname.com] NotImplementedError | |
** [out :: v1-staging.domainname.com] | |
** [out :: v1-staging.domainname.com] | |
** [out :: v1-staging.domainname.com] Moonshine::Manifest::Rails is currently only supported on Ubuntu 8.04 | |
** [out :: v1-staging.domainname.com] or greater. If you'd like to see your favorite distro supported, fork | |
** [out :: v1-staging.domainname.com] Moonshine on GitHub! | |
** [out :: v1-staging.domainname.com] /srv/dev.domainname/releases/20100219195856/vendor/plugins/moonshine/lib/moonshine/manifest/rails.rb:13:in `validate_platform' | |
** [out :: v1-staging.domainname.com] /usr/lib/ruby/gems/1.8/gems/shadow_puppet-0.3.2/lib/shadow_puppet/manifest.rb:300:in `send' | |
** [out :: v1-staging.domainname.com] /usr/lib/ruby/gems/1.8/gems/shadow_puppet-0.3.2/lib/shadow_puppet/manifest.rb:300:in `evaluate_recipes' | |
** [out :: v1-staging.domainname.com] /usr/lib/ruby/gems/1.8/gems/shadow_puppet-0.3.2/lib/shadow_puppet/manifest.rb:295:in `each' | |
** [out :: v1-staging.domainname.com] /usr/lib/ruby/gems/1.8/gems/shadow_puppet-0.3.2/lib/shadow_puppet/manifest.rb:295:in `evaluate_recipes' | |
** [out :: v1-staging.domainname.com] /usr/lib/ruby/gems/1.8/gems/shadow_puppet-0.3.2/lib/shadow_puppet/manifest.rb:251:in `execute!' | |
** [out :: v1-staging.domainname.com] /usr/lib/ruby/gems/1.8/gems/shadow_puppet-0.3.2/bin/shadow_puppet:91 | |
** [out :: v1-staging.domainname.com] /usr/bin/shadow_puppet:19:in `load' | |
** [out :: v1-staging.domainname.com] /usr/bin/shadow_puppet:19 | |
command finished | |
*** [deploy:update_code] rolling back | |
* executing "rm -rf /srv/dev.domainname/releases/20100219195856; true" | |
servers: ["v1-staging.domainname.com"] | |
[v1-staging.domainname.com] executing command | |
command finished | |
failed: "sh -c 'sudo -p '\\''sudo password: '\\'' RAILS_ROOT=/srv/dev.domainname/releases/20100219195856 DEPLOY_STAGE=v1-staging RAILS_ENV=production shadow_puppet /srv/dev.domainname/releases/20100219195856/app/manifests/application_manifest.rb'" on v1-staging.domainname.com | |
➜ rails |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
:application: dev.domainname.com | |
:deploy_to: /srv/dev.domainname | |
:domain: dev.domainname.com | |
# Other unrelated settings omitted |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server "v1-staging.domainname.com", :app, :web, :db, :primary => true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment