का उपयोग करते समय कैपिस्ट्रानो समय निकालते हैं, मुझे कैपिस्ट्रानो को अमेज़ॅनआरडीएस के साथ अच्छी तरह से खेलने के लिए प्रतीत नहीं होता है। मैंने इसे सही तरीके से स्थापित करने के लिए किसी भी जानकारी के लिए पूरी जगह पर देखा है, लेकिन कोई भी नहीं मिला है। अभी, जब मैं cap deploy
, प्रक्रिया समय समाप्त हो गया।अमेज़ॅन आरडीएस
यह मेरा deploy.rb है:
set :deploy_to, "/opt/bitnami/apps/annarbortshirtcompany.com/cms/"
set :scm, :git
set :repository, "ssh://[email protected]/~/repo/cms.git"
set :deploy_via, :remote_cache
set :user, "user"
ssh_options[:keys] = [File.join(ENV["HOME"], "EC2", "admin.pem")]
ssh_options[:forward_agent] = true
set :branch, "master"
set :use_sudo, true
set :location, "ec2-webserver.compute-1.amazonaws.com"
role :web, location
role :app, location
role :db, "cmsinstance.c7r8frl6npxn.us-east-1.rds.amazonaws.com", :primary => true
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
आरडीएस डेटाबेस उदाहरण के लिए उपयोगकर्ता नाम SSH उपयोगकर्ता नाम यहां सेट से अलग है, लेकिन मेरे database.yml में परिभाषित किया गया है। मुझे लगता है कि शायद यह कैपिस्ट्रानो द्वारा नहीं पढ़ा जा रहा है, लेकिन यह नहीं पता कि ऐसा कैसे किया जाए।
जब मैं "टोपी तैनाती":
[email protected]:~/RailsApps/cms$ cap deploy
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote ssh://[email protected]/~/repo/cms.git master"
command finished in 1590ms
* executing "if [ -d /app-directory/shared/cached-copy ]; then cd /app-directory/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard ffc4ec7762566f801c4a9140aa3980dc71e3d06f && git clean -q -d -x -f; else git clone -q ssh://[email protected]/~/repo/cms.git /app-directory/shared/cached-copy && cd /app-directory/shared/cached-copy && git checkout -q -b deploy ffc4ec7762566f801c4a9140aa3980dc71e3d06f; fi"
servers: ["ec2-webserver.compute-1.amazonaws.com", "dbinstance.us-east1.rds.amazonaws.com"]
*** [deploy:update_code] rolling back
* executing "rm -rf /app-directory/releases/20110607161612; true"
servers: ["ec2-webserver.compute-1.amazonaws.com", "dbinstance.us-east1.rds.amazonaws.com"]
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: dbinstance.us-east1.rds.amazonaws.com (Errno::ETIMEDOUT: Connection timed out - connect(2))
connection failed for: dbinstance.us-east1.rds.amazonaws.com (Errno::ETIMEDOUT: Connection timed out - connect(2))
ऐसा क्यों है "सभी सर्वरों पर कैश चेकआउट अद्यतन" चाहेगा? इस बिंदु पर डीबी सर्वर की भी आवश्यकता नहीं होनी चाहिए। मैं इसे ठीक करने के तरीके पर फंस गया हूँ। उम्मीद है कि कोई मुझे सही दिशा में इंगित कर सकता है!
स्पष्ट करने के लिए, सब कुछ अच्छा काम करता है जब डेटाबेस के लिए 'ओर इशारा करते हुए: location' के बजाय आरडीएस उदाहरण –