1

我是 Capistrano 和 Windows Azure 的新手,在将我的 Ruby on Rails 应用程序部署到我的 Azure 虚拟机时遇到问题。我能够使用 SSH 登录并连接到 VM。此外,我在连接到 VM 时成功创建了一个新的 Rails 应用程序(能够通过 VM 的 DNS 访问它)。但是,我不知道如何从 VM 服务器获取 Rails 代码,以便我可以在本地对其进行编辑,然后将更改推送回服务器。

无论如何,我在本地创建了一个简单的 Rails 应用程序,并希望将它(使用 Capistrano)部署到我的 Azure VM。cap deploy运行(和)时出现以下错误cap deploy:setup

connection failed for: fb-shanghai.cloudapp.net (Errno::ETIMEDOUT: Operation timed out - connect(2))

我一直在玩deploy.rb配置文件,但一直收到同样的错误。另外,当我将:web角色从VM DNS“fb-shanghai.cloudapp.net”更改为公共VIP并运行cap deploy时,我收到了输入密码的提示,但无论我输入什么,它都失败了。

在这一点上,我真的不知道我需要做什么才能在我的 Azure VM 上运行我的 RoR 应用程序。任何帮助将不胜感激!

我的环境:

  • Mac OS X 10.7.5
  • 红宝石 1.9.3
  • 导轨 3.2.9
  • 为我的虚拟机使用 Ruby-Stack-1-9-3-6-Ubuntu-12-10 映像
4

2 回答 2

2

我有同样的问题,但我的仍然无法使用 IP 而不是 name_of_app.cloudapp.net。我花了一段时间才弄清楚,但由于某种原因,Azure 在我创建 VM 时将默认公共端口创建为随机端口号(不是 22),因此我将其编辑为 22 并且它工作正常。

我还应该提到我使用 VM 仓库中的 Bitnami ruby​​stack 来安装我的 VM。

就 deploy.rb 文件而言,我使用了上面发布的教程中的这个gist文件。

于 2013-04-13T19:08:30.543 回答
1

原来我需要为服务器配置行指定 VIP:

所以server "xxx.xx.xxx.xxx", :web, :app, :db, primary: true

代替server "name_of_app.cloudapp.net", :web, :app, :db, primary: true

然后,我需要require "bundler/capistrano"在文件顶部添加deploy.rb

最后,我遵循了Capistrano wiki以及Windows Azure 上的 Ruby on Rails 教程中的一些说明。

于 2013-03-26T19:31:10.910 回答