Skip to content

Instantly share code, notes, and snippets.

@mwlang
Last active December 21, 2015 04:29
Show Gist options
  • Select an option

  • Save mwlang/6250075 to your computer and use it in GitHub Desktop.

Select an option

Save mwlang/6250075 to your computer and use it in GitHub Desktop.
Cap deploy issue
require "bundler/capistrano"
require 'rvm/capistrano'
set :rvm_ruby_string, '2.0.0'
set :rvm_type, :system
set :application, "demo"
set :server_address, "rackspace"
set :use_sudo, false
set :use_monit, false
set :domain, "cybrains.net"
set :user, "deploy"
set :group, "deploy"
set :rails_env, "production"
# shared paths
set :site_path, "/home/deploy/sites/n2b"
set :deploy_to, "#{site_path}/application/#{application}"
set :shared_config_path, "#{shared_path}/config"
# Configuration
set :scm, :git
set :repository, "git@rackspace.cybrains.net:n2b-demo.git"
# allow local keys instead of server's keys
# SEE: https://help.github.com/articles/using-ssh-agent-forwarding
# allow git password prompts (not needed with forward_agent "true")
ssh_options[:forward_agent] = true
default_run_options[:pty] = false
set :deploy_via, :remote_cache
# Servers
role :app, server_address
role :web, server_address
role :db, server_address, :primary => true
before "deploy:assets:precompile", "deploy:copy_configs"
before "bundle:install", "deploy:ruby_version"
# Overrides
namespace :deploy do
desc "copies the saved config files"
task :copy_configs, :roles => :app do
# Copy config files to latest release
run "cp #{shared_config_path}/* #{release_path}/config/"
end
end
##################################
### Passenger Deploy Overrides ###
##################################
namespace :deploy do
desc "show ruby version"
task :ruby_version do
puts '*' * 40
puts capture("ruby --version").strip
puts '*' * 40
end
desc "Restarting mod_rails with restart.txt"
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
[:start, :stop].each do |t|
desc "#{t} task is a no-op with mod_rails"
task t, :roles => :app do ; end
end
end
##################################
### MySQL automatic backups ###
##################################
set :backup_db_path, "#{shared_path}/backups"
def remote_file_exists?(full_path)
'true' == capture("if [ -e #{full_path} ]; then echo 'true'; fi").strip
end
namespace :db do
desc 'Backup database before deploy'
task :backup, :roles => :db, :only => {:primary => true} do
run "mkdir -p #{backup_db_path}" # Create a backup folder unless exists
# Check if we've got database config
if remote_file_exists?("#{current_path}/config/database.yml")
text = capture("cat #{current_path}/config/database.yml")
config = YAML::load(text)[rails_env]
filename = "#{backup_db_path}/#{config['database']}_#{Time.now.strftime("%m%d%Y%H%I%S")}.sql.gz"
run "mysqldump -u #{config['username']} -p #{config['database']} | gzip --best > #{filename}" do |ch, stream, out|
ch.send_data "#{config['password']}\n" if out =~ /^Enter password:/
end
else
logger.debug("[Backup] No configuration file was found.")
end
end
end
09:38:32:demo >> cap deploy
triggering load callbacks
* 2013-08-16 09:38:41 executing `deploy'
* 2013-08-16 09:38:41 executing `deploy:update'
** transaction: start
* 2013-08-16 09:38:41 executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git@rackspace.cybrains.net:n2b-demo.git HEAD"
command finished in 1795ms
* executing "if [ -d /home/deploy/sites/n2b/application/demo/shared/cached-copy ]; then cd /home/deploy/sites/n2b/application/demo/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard b48fd42788eb54a7deb02d70c760573e949bc04d && git clean -q -d -x -f; else git clone -q git@rackspace.cybrains.net:n2b-demo.git /home/deploy/sites/n2b/application/demo/shared/cached-copy && cd /home/deploy/sites/n2b/application/demo/shared/cached-copy && git checkout -q -b deploy b48fd42788eb54a7deb02d70c760573e949bc04d; fi"
servers: ["rackspace"]
[rackspace] executing command
command finished in 4488ms
copying the cached version to /home/deploy/sites/n2b/application/demo/releases/20130816133848
* executing "cp -RPp /home/deploy/sites/n2b/application/demo/shared/cached-copy /home/deploy/sites/n2b/application/demo/releases/20130816133848 && (echo b48fd42788eb54a7deb02d70c760573e949bc04d > /home/deploy/sites/n2b/application/demo/releases/20130816133848/REVISION)"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1178ms
* 2013-08-16 09:38:49 executing `deploy:finalize_update'
triggering before callbacks for `deploy:finalize_update'
* 2013-08-16 09:38:49 executing `deploy:assets:symlink'
* executing "rm -rf /home/deploy/sites/n2b/application/demo/releases/20130816133848/public/assets && mkdir -p /home/deploy/sites/n2b/application/demo/releases/20130816133848/public && mkdir -p /home/deploy/sites/n2b/application/demo/shared/assets && ln -s /home/deploy/sites/n2b/application/demo/shared/assets /home/deploy/sites/n2b/application/demo/releases/20130816133848/public/assets"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1236ms
* 2013-08-16 09:38:51 executing `bundle:install'
triggering before callbacks for `bundle:install'
* 2013-08-16 09:38:51 executing `deploy:ruby_version'
****************************************
* executing "ruby --version"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1023ms
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
****************************************
* executing "cd /home/deploy/sites/n2b/application/demo/releases/20130816133848 && bundle install --gemfile /home/deploy/sites/n2b/application/demo/releases/20130816133848/Gemfile --path /home/deploy/sites/n2b/application/demo/shared/bundle --deployment --quiet --without development test"
servers: ["rackspace"]
[rackspace] executing command
command finished in 2023ms
* executing "chmod -R -- g+w /home/deploy/sites/n2b/application/demo/releases/20130816133848 && rm -rf -- /home/deploy/sites/n2b/application/demo/releases/20130816133848/public/system && mkdir -p -- /home/deploy/sites/n2b/application/demo/releases/20130816133848/public/ && ln -s -- /home/deploy/sites/n2b/application/demo/shared/system /home/deploy/sites/n2b/application/demo/releases/20130816133848/public/system && rm -rf -- /home/deploy/sites/n2b/application/demo/releases/20130816133848/log && ln -s -- /home/deploy/sites/n2b/application/demo/shared/log /home/deploy/sites/n2b/application/demo/releases/20130816133848/log && rm -rf -- /home/deploy/sites/n2b/application/demo/releases/20130816133848/tmp/pids && mkdir -p -- /home/deploy/sites/n2b/application/demo/releases/20130816133848/tmp/ && ln -s -- /home/deploy/sites/n2b/application/demo/shared/pids /home/deploy/sites/n2b/application/demo/releases/20130816133848/tmp/pids"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1143ms
triggering after callbacks for `deploy:update_code'
* 2013-08-16 09:38:55 executing `deploy:assets:precompile'
triggering before callbacks for `deploy:assets:precompile'
* 2013-08-16 09:38:55 executing `deploy:assets:update_asset_mtimes'
* executing "[ -e /home/deploy/sites/n2b/application/demo/shared/assets/manifest* ] && cat /home/deploy/sites/n2b/application/demo/shared/assets/manifest* || echo"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1044ms
** Updating mtimes for ~64 assets...
servers: ["rackspace"]
** scp upload #<StringIO:0x007f9c7482d8a0> -> /home/deploy/sites/n2b/application/demo/TOUCH_ASSETS
[rackspace] /home/deploy/sites/n2b/application/demo/TOUCH_ASSETS
* scp upload complete
* executing "cat /home/deploy/sites/n2b/application/demo/TOUCH_ASSETS | while read asset; do touch -c -- \"$asset\"; done && rm -f -- /home/deploy/sites/n2b/application/demo/TOUCH_ASSETS"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1240ms
* 2013-08-16 09:38:58 executing `deploy:copy_configs'
* executing "cp /home/deploy/sites/n2b/application/demo/shared/config/* /home/deploy/sites/n2b/application/demo/releases/20130816133848/config/"
servers: ["rackspace"]
[rackspace] executing command
command finished in 999ms
* executing "cd -- /home/deploy/sites/n2b/application/demo/releases/20130816133848 && RAILS_ENV=production RAILS_GROUPS=assets bundle exec rake assets:precompile"
servers: ["rackspace"]
[rackspace] executing command
command finished in 10589ms
* executing "ls -1 /home/deploy/sites/n2b/application/demo/shared/assets/manifest* | wc -l"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1020ms
* executing "ls /home/deploy/sites/n2b/application/demo/shared/assets/manifest*"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1010ms
* executing "[ -e /home/deploy/sites/n2b/application/demo/shared/assets/manifest-1a0ef22a6d5592ac600ac4a660008092.json ] || mv -- /home/deploy/sites/n2b/application/demo/shared/assets/manifest* /home/deploy/sites/n2b/application/demo/shared/assets/manifest-1a0ef22a6d5592ac600ac4a660008092.json"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1051ms
* executing "ls -x /home/deploy/sites/n2b/application/demo/releases"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1144ms
* executing "cp -- /home/deploy/sites/n2b/application/demo/shared/assets/manifest-1a0ef22a6d5592ac600ac4a660008092.json /home/deploy/sites/n2b/application/demo/releases/shared/assets_manifest.json"
servers: ["rackspace"]
[rackspace] executing command
*** [err :: rackspace] cp:
*** [err :: rackspace] accessing `/home/deploy/sites/n2b/application/demo/releases/shared/assets_manifest.json'
*** [err :: rackspace] : Not a directory
*** [err :: rackspace]
command finished in 1041ms
*** [deploy:update_code] rolling back
* executing "rm -rf /home/deploy/sites/n2b/application/demo/releases/20130816133848; true"
servers: ["rackspace"]
[rackspace] executing command
command finished in 1092ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment