我需要部署到2个不同的服务器,这2个服务器有不同的身份验证方法(一个是我大学的服务器,另一个是亚马逊网络服务器AWS)
我已经为我的大学服务器运行了capistrano,但我不知道如何将部署添加到AWS,因为对于这个我需要添加ssh选项,例如用户.pem文件,如下所示:
ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "test.pem")]
ssh_options[:forward_agent] = true
我浏览了starckoverflow,没有提及如何处理不同的身份验证方法this和this
我found a post讨论了2个不同的密钥,但是这个密钥指的是服务器和git,它们都使用不同的pem文件。事实并非如此。
我到了this tutorial,但找不到我需要的东西。
我不知道这是否与我要问的内容相关:我正在使用ruby 1.9.2p290和rails 3.0.10的rails应用程序,我正在使用svn存储库
欢迎任何帮助。非常感谢
答案 0 :(得分:0)
你需要使用capistrano多阶段。有一个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,用户,网关等。