2014-04-17 40 views
0

我有一个非常有趣的问题。以下是我目前在经典模式下在Amazon EC2中进行部署的工作流程。在Amazon VPC中部署公司网络内部的自定义gems

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

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

  3. 在公司的git账户里有自定义的红宝石(因此不能从我公司的网络外部安装宝石)。

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

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


现在的问题,当我们决定从亚马逊经典移动到Amazon VPC仅具有私有IP地址的部署目标出现。以下是我想到的在VPC实例中部署代码的工作流程。

  1. 创建亚马逊VPC一个部署主机和重视公共DNS它,这样我可以从我的主要部署主机访问它(这是我公司的网络内。)

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

的问题是,我不能够找到一种方法来安装这些git的帐户我公司内部举办的宝石。你们能帮我解决这个问题吗?

+0

您是否考虑在我们的供应商文件夹中缓存该宝石? – spickermann

+0

您的公司网络中是不是您的VPC? – Rico

+0

@Rico:不,VPC不在公司网络内。有没有办法做到这一点? – kyser

回答

0

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

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

希望它有帮助。

0

先下载宝石,然后使用scp

scp -r -i key [email protected]:/ruby-app 

然后运行从文件夹gem install gem-name它传递给EC2实例在VPC,它将从与名称的文件夹内配套安装宝石。

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