【问题标题】:Capistrano deploying to different servers with different authentication methodsCapistrano 部署到具有不同身份验证方法的不同服务器
【发布时间】:2012-06-22 05:36:00
【问题描述】:

我需要部署到 2 个不同的服务器,这 2 个服务器有不同的身份验证方法(一个是我大学的服务器,另一个是亚马逊网络服务器 AWS)

我已经为我大学的服务器运行 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,但找不到我需要的东西。

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

欢迎任何帮助。非常感谢

【问题讨论】:

  • 您可能会在 serverfault.com 上找到更合适的受众
  • 谢谢,我也会把问题贴在那里

标签: amazon-ec2 capistrano


【解决方案1】:

您需要使用 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

您可以扩展这种复杂性以打开 VPN、用户、网关等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2011-07-04
    相关资源
    最近更新 更多