2012-06-20 58 views
2

我需要部署到2个不同的服务器和这2台服务器有不同的身份验证方法(一个是我大学的服务器,另一个是一个Amazon Web服务器AWS)Capistrano的部署到不同的服务器有不同的验证方法

我已经有运行我的大学的服务器Capistrano的,但我不知道如何部署添加到AWS,因为这一个,我需要例如添加SSH选项,用户.pem文件,像这样:

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

我浏览过starckoverflow,并且没有提及如何处理不同的身份验证方法thisthis

found a post谈到2个不同的键,但这一个是指一个服务器和一个git,都使用不同的pem文件。不是这种情况。

我到了this tutorial,但找不到我需要的东西。

我不知道这是有关什么我问:我工作的一个Rails应用程序红宝石1.9.2p290和轨道3.0.10和我使用的是SVN仓库

请任何帮助os欢迎。非常感谢

+0

您可能会发现对serverfault.com – moodywoody

+0

谢谢你更合适的受众,我会在那里发布问题 – marimaf

回答

0

您需要使用capistrano多阶段。有一个这样做的宝石,或者你可以直接将环境或舞台文件包含到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 

可以扩大这种复杂性打开的VPN,用户,网关等

相关问题