以前に機能していたプロジェクトを開発サーバーにデプロイしようとすると、少し問題が発生します。私はシステムをセットアップしませんでしたが、必要なすべての資格情報を持っています(私は思います)。
cap staging deployを試した後、これまでのところ取得しましたが、エラーが発生します。下記を参照してください:
triggering load callbacks
* 2012-11-20 14:52:20 executing `staging'
triggering start callbacks for `deploy'
* 2012-11-20 14:52:20 executing `multistage:ensure'
Identity added: /Users/XXX/.ssh/id_rsa (/Users/XXX/.ssh/id_rsa)
* 2012-11-20 14:52:20 executing `deploy'
* 2012-11-20 14:52:20 executing `deploy:update'
** transaction: start
* 2012-11-20 14:52:20 executing `deploy:update_code'
executing locally: "git ls-remote ssh://gitolite@repo1:2011/proto_projectname_rails HEAD"
command finished in 2864ms
* executing "git clone -q ssh://gitolite@repo1:2011/proto_projectname_rails /var/www/projectname/releases/20121120145223 && cd /var/www/projectname/releases/20121120145223 && git checkout -q -b deploy 0598169ed07015279bd78efa91f25ed3e5edcad8 && (echo 0598169ed07015279bd78efa91f25ed3e5edcad8 > /var/www/projectname/releases/20121120145223/REVISION)"
servers: ["repo2"]
*** [deploy:update_code] rolling back
* executing "rm -rf /var/www/projectname/releases/20121120145223; true"
servers: ["repo2"]
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: repo2 (Errno::ECONNREFUSED: Connection refused - connect(2))
connection failed for: repo2 (Errno::ECONNREFUSED: Connection refused - connect(2))
deploy.rb
set :stages, %w(staging production)
set :default_stage, "production"
require 'capistrano/ext/multistage'
set :application, "projectname"
set :scm, :git
set :repository, "ssh://gitolite@repo1:2011/proto_projectname_rails"
以前は機能していたバージョンが機能しなくなった理由について、正直に混乱しています。
ヘルプ、アドバイス、ガイダンス、またはこの問題は大歓迎です。
ありがとうございました
ちなみに、はい、それは常に2011年の非標準ポートであり、私の.ssh/configにあります。
編集:
このプロセスには2台のサーバーが関係しています。
以下をローカルおよび2番目のサーバーで実行した後、応答があります。
git ls-remote ssh://gitolite@repo1:2011/proto_projectname_rails
戻ります。
0598169ed07015279bd78efa91f25ed3e5edcad8 HEAD
0598169ed07015279bd78efa91f25ed3e5edcad8 refs/heads/master
編集:2台のサーバーで実行されます。Repo1とRepo2
cap deploy:check
戻り値
triggering load callbacks
* 2012-11-27 21:02:36 executing `production'
triggering start callbacks for `deploy:check'
* 2012-11-27 21:02:36 executing `multistage:ensure'
Identity added: /Users/x/.ssh/id_rsa (/Users/x/.ssh/id_rsa)
* 2012-11-27 21:02:36 executing `deploy:check'
* executing "test -d /var/www/projectname/releases"
servers: ["repo2"]
connection failed for: repo2 (Errno::ECONNREFUSED: Connection refused - connect(2))
解決しました
2番目のサーバーのポート番号が原因で拒否されていたことが判明しました。追加する
set :port, 1893
賞金は、これを説明できる人なら誰でもまだ開いています。
ssh / configをいつでも編集せずに、常にサーバーにSSHで接続でき、他のマシンでもまったく同じデプロイファイルとステージングファイルでデプロイできたのに、ポート番号を明示的に追加するまでできなかったのはなぜですか?