【发布时间】:2013-10-06 16:59:03
【问题描述】:
我有一个虚拟机,我想在其中运行 Rails 应用程序。我使用 Vagrant 运行它并使用 Puppet 作为配置工具。
我想在配置期间运行bundle install,以便虚拟机准备就绪。我用这个:
exec { 'bundle install':
command => 'bundle install',
cwd => '/vagrant/',
logoutput => true,
}
除了一个之外的所有 gem 都已安装。问题出在ember-rails,这是唯一一个在 Gemfile 中指定了 GitHub 存储库:
gem 'ember-rails', github: 'emberjs/ember-rails'
我认为这一定是 Puppet 的问题。当我 ssh 进入虚拟机并手动运行 bundle install 时,gem 被下载并使用。通过 Vagrant 运行配置时,Puppet 会记录此消息,但 gem 似乎丢失了:
/Stage[main]/Bundler/Exec[bundle install]/returns: Using ember-rails (0.9.2) from git://github.com/emberjs/ember-rails.git (at master)
我注意到一个不同之处。当我手动运行bundle install 时,Bundler 会记录以下内容:
Fetching git://github.com/emberjs/ember-rails.git
但是,Puppet 日志中没有这样的消息。任何想法可能是什么问题?
【问题讨论】:
-
尝试指定
path(docs.puppetlabs.com/references/latest/…) 属性。可能没有它捆绑找不到git命令并静默失败。 -
我已经指定了路径。没有它,捆绑失败并显示错误消息。所以这不是问题。
标签: github rubygems bundler vagrant puppet