0

我有一个非常有趣的问题。以下是我当前在经典模式下在 Amazon EC2 中部署的工作流程。

  1. 在我公司的网络中部署主机。

  2. 部署目标是 AWS 中的 EC2 机器。

  3. 在公司的 git 帐户中拥有自定义 ruby​​ gem(因此无法从我的公司网络外部安装 gem)。

  4. 克服第 3 点中提到的问题。我在部署主机和部署目标之间使用了反向隧道。

  5. 我正在使用 capistrano 进行部署。


现在问题出现了,当我们决定从 Amazon Classic 迁移到 Amazon VPC 时,部署目标只有私有 IP 地址。这是我想到的在 VPC 实例中部署代码的工作流程。

  1. 在 Amazon VPC 中创建一个部署主机并将公共 dns 附加到它,以便我可以从我的主要部署主机(位于我公司的网络内)访问它。

  2. 通过从 AWS 部署主机运行部署脚本来部署代码。

问题是我无法找到安装托管在我公司的 git 帐户中的 gem 的方法。你们能帮我解决这个问题吗?

4

2 回答 2

0

先下载 gems,然后使用 scp 将其传递给 vpc 中的 ec2 实例

scp -r -i key ubuntu@ip-address:/ruby-app

然后gem install gem-name从文件夹中运行,它将从与名称匹配的文件夹中安装 gem。

运行bundle package,这将下载所有的 gem,并将出现在vendor/cache文件夹中。现在将此文件移动到 ec2 实例。

于 2014-04-17T18:57:52.210 回答
0

在部署之前,您只需推送到 AWS 部署主机中的 git 裸存储库即可设置生产存储库的 git 镜像。

然后,该 AWS 部署主机也可以访问您的 VPC,以便您可以从那里进行部署。

希望能帮助到你。

于 2014-04-17T18:04:11.947 回答