Amazon ec2 Capistrano使用不同的身份验证方法部署到不同的服务器

Amazon ec2 Capistrano使用不同的身份验证方法部署到不同的服务器,amazon-ec2,capistrano,Amazon Ec2,Capistrano,我需要部署到两个不同的服务器,这两个服务器有不同的身份验证方法(一个是我大学的服务器,另一个是amazon web服务器AWS) 我已经为我大学的服务器运行了capistrano,但我不知道如何将部署添加到AWS,因为对于这一个,我需要添加ssh选项,例如添加到用户.pem文件,如下所示: ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "test.pem")] ssh_options[:forward_agent] = true 我

我需要部署到两个不同的服务器,这两个服务器有不同的身份验证方法(一个是我大学的服务器,另一个是amazon web服务器AWS)

我已经为我大学的服务器运行了capistrano,但我不知道如何将部署添加到AWS,因为对于这一个,我需要添加ssh选项,例如添加到用户.pem文件,如下所示:

ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "test.pem")] 
ssh_options[:forward_agent] = true
我浏览了starckoverflow,没有帖子提到如何处理不同的身份验证方法和

我提到了两个不同的密钥,但这一个指的是服务器和git,两者都使用不同的pem文件。事实并非如此

我想去,但找不到我需要的东西

我不知道这是否与我的问题相关:我正在使用ruby 1.9.2p290和rails 3.0.10开发一个rails应用程序,我正在使用一个svn存储库


欢迎任何帮助。非常感谢

您需要使用capistrano multi-stage。有一个gem可以做到这一点,或者您可以直接在capfile中包含一个环境或stage文件

您将无法同时部署到这些环境,但可以按顺序部署

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

您可以将这一复杂性扩展到开放VPN、用户、网关等。

您需要使用capistrano multi-stage。有一个gem可以做到这一点,或者您可以直接在capfile中包含一个环境或stage文件

您将无法同时部署到这些环境,但可以按顺序部署

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

您可以将此复杂性扩展到打开VPN、用户、网关等。

您可能会在serverfault上找到更合适的受众。谢谢,我也会在那里发布问题。谢谢,我也会在serverfault上发布问题