1

capistrano を使用して最初の webapp を EC2 にデプロイしようとしていますが、レポは github にあります。しかし、「cap deploy:cold」の問題に直面しています。deploy.rb を以下に貼り付けます。以下は、私が従った手順です。

1) ローカル マシンから ssh を使用して ec2 インスタンスにログインしました。パスフレーズなしで ssh-keygen を使用して生成されたキー。

2) id_rsa.pub の内容を取得し、github リポジトリ設定のデプロイ キーにコピーします。

3) 次に、ローカル マシンから「cap deploy:cold」を実行しました。次のエラーが表示されます

user1@laptop:~/MyExample$ cap deploy:cold * 2013-03-01 19:08:06 deploy:update を実行中 ** transaction: start * 2013-03-01 19:08:06 `deploy:update_code' を実行中ローカルで実行されているすべてのサーバーでキャッシュされたチェックアウトを更新します: "git ls-remote git@github.com:user1/MyExample.git HEAD" Permission denied (publickey)。致命的: リモート エンドが予期せずハングアップ * [deploy:update_code] ロールバック * "rm -rf /var/www/MyExample.com/releases/20130301133835; true" を実行中 サーバー: ["181.73.124.219"] [181.73.124.219 ] コマンド command を実行中 1186ms で終了deploy:cold'
* 2013-03-01 19:08:06 executing


set :application, "MyExample.com" set :scm, "git" set :repository, "git@github.com:thisuser/example.git"

default_run_options[:pty] = true

set :user, 'ubuntu' set :use_sudo, true set :deploy_to, "/var/www/#{application}" set :deploy_via, :remote_cache

役割:web、「181.73.124.219」役割:アプリ、「181.73.124.219」役割:db、「181.73.124.219」、:primary => true

「deploy」の後、「deploy:bundle_gems」、「deploy:bundle_gems」の後、「deploy:restart」

namespace :deploy do task :bundle_gems do run "cd #{deploy_to}/current && bundle install vandor/gems" end task :start do ; タスクの終了 : 停止します。end task :restart, :roles => :app, :except => { :no_release => true } do run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')} " 終了 終了

ここで何が欠けていますか?また、詳細な手順を提供できる URL/ブログへのポインタも役立ちます。

ありがとう。

4

1 に答える 1

0

私はそれを機能させることができました。ログに見られるように、 ローカルで実行: "git ls-remote git@github.com:user1/MyExample.git HEAD"

カピストラーノは、サーバーではなくローカル マシンで上記のコマンドを実行しようとしています。端末で上記のコマンドを実行しても、同じエラーが返されました - Permission denied (Public Key)。

そのため、生成された id_rsa と id_rsa.pub をデプロイ サーバーからローカル マシンにコピーする必要がありました。コピーしたら、「ssh-add /path/to/keys」を実行して、使用している ssk キーに追加します。

これらのキーを追加した後、先に進むことができました。

于 2013-03-01T17:39:24.090 に答える