在空隙(无互联网接入)networking中部署Ruby应用程序

我工作中的当前networking设置使得部署Ruby Web应用程序变得困难。 我们正在运行我们的生产RHEL服务器,在空隙networking中无法访问公共互联网。 我的工作站显然可以通过SSH将包和文件传输到服务器,但是像RVM这样的工具几乎不可能在没有直接互联网访问的情况下安装。

gem依赖也是可怕的处理。 这可以用bundler进行部分补救,但是如果一个gem依赖于需要编译的包,那么在我开发(和捆绑)到OSX上的时候,它是行不通的。

我想到了两个可能的解决办法,但是想让更多的专业人士借我一些指点。 这是我的想法:

  • 在工作站的本地虚拟机上安装Ruby应用程序。 当一切都已经build立,不知何故采取文件系统(git也许?)的差异将被传输到生产服务器,并提取。
  • 设置一个反向的SSH隧道来暂时获取生产服务器上的互联网访问权限(这甚至可能吗?)。

这些想法是否可行? 如果是这样,你会推荐哪一个,我将如何去实施呢?

谢谢您的帮助!

我可以想到两个工具,可以帮助你很多。

  1. fpm – 这将从任意的软件树构build一个rpm。

  2. Omnibus – 这个工具是为了解决你正在描述的问题,安装一个ruby应用程序以及所有必要的依赖项。

https://github.com/jordansissel/fpm

https://github.com/opscode/omnibus-ruby