2

2 つの異なるサーバーにデプロイする必要があり、これら 2 つのサーバーには異なる認証方法があります (1 つは私の大学のサーバーで、もう 1 つは Amazon Web サーバー AWS です)。

私はすでに大学のサーバーで capistrano を実行していますが、デプロイを AWS に追加する方法がわかりません。これは、たとえば .pem ファイルを使用するために、次のように ssh オプションを追加する必要があるためです。

ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "test.pem")] 
ssh_options[:forward_agent] = true

私はstarckoverflowを閲覧しましたが、これこれのさまざまな認証方法に対処する方法についての投稿はありません

2 つの異なるキーについて説明している投稿を見つけましたが、これはサーバーと git を参照しており、どちらも異なる pem ファイルを使用しています。これはそうではありません。

このチュートリアルにたどり着きましたが、必要なものが見つかりませんでした。

これが私が求めていることに関連しているかどうかはわかりません: Ruby 1.9.2p290 と Rails 3.0.10 を使用して Rails アプリに取り組んでおり、svn リポジトリを使用しています

どんな助けでも大歓迎です。どうもありがとう

4

1 に答える 1

0

カピストラーノマルチステージを使用する必要があります。これを行うgemがあります。または、環境またはステージファイルをcapfileに直接含めることもできます。

これらの環境に同時にデプロイすることはできませんが、順次デプロイすることはできます。

desc "deploy to dev environment"
 task :dev do
 set :stage_name, "dev"
 set :user, "dev"
 set :deploy_to, "/usr/applications/dev"
 role :app, "10.1.1.1"
end

desc "deploy to aws environment"
 task :aws do
  set :stage_name, "aws"
  set :user, "aws"
  set :deploy_to, "/usr/applications/aws" 
  ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "test.pem")] 
  ssh_options[:forward_agent] = true
  role :app, "10.2.2.2"
 end

次のように実行します。

cap dev deploy; cap aws deploy

この複雑さを拡張して、VPNS、ユーザー、ゲートウェイなどを開くことができます.

于 2013-09-27T19:22:59.940 に答える