除非重新安装,stream浪者不检测厨师独奏

我正在使用stream浪汉来testing我的厨师食谱在亚马逊AWS,我遇到一个恼人的问题:

我最初认为Vagrant会自己安装厨师(就像使用Virtual Box作为提供者时一样),但似乎需要使用cloud-init脚本来完成。 但是,即使通过cloud-init成功安装了厨师gem,我仍然遇到以下错误:

The chef binary (either厨师独奏or厨师 – 客户端) was not found

这个错误的快速谷歌提出了三个可能的原因:

  • 厨师没有安装
  • 它已经安装,但目录不在$ PATH环境variables中
  • 它已经安装在$ PATH中,但具有不正确的权限

我login并重复检查; 厨师独奏和厨师客户端安装; 用户,sudo和root的pathvariables都包含/usr/local/bin和权限都没问题。

我设法通过使用sudo gem install chef卸载并重新安装gem来解决这个问题。 我不明白为什么这应该解决这个问题,这是一个有点问题,如果我必须ssh进入testing框,并手动安装gem。

有没有人有任何build议,为什么这可能会发生?

我不会通过gem安装chef-client

Opscodebuild议通过他们的“omnibus”安装程序进行安装 。

一个方便的方式来做到这一点,通过一个stream浪插件是https://github.com/schisamo/vagrant-omnibusvagrant-omnibus支持几个提供者,包括vagrant-aws ,并且还支持一些不同的发行版。

这一般一样简单:

$ vagrant plugin install vagrant-omnibus并添加一行configuration到你的Vagrantfile

在这里得到了同样的问题…暂时我修复了它的运行:

 vagrant ssh -c 'sudo ln -s /opt/chef/bin/* /usr/local/bin/' 

但是这是一个糟糕的解决办法…我希望能尽快find更好的东西。