我正在使用stream浪汉来testing我的厨师食谱在亚马逊AWS,我遇到一个恼人的问题:
我最初认为Vagrant会自己安装厨师(就像使用Virtual Box作为提供者时一样),但似乎需要使用cloud-init脚本来完成。 但是,即使通过cloud-init成功安装了厨师gem,我仍然遇到以下错误:
The chef binary (either厨师独奏or厨师 – 客户端) was not found
这个错误的快速谷歌提出了三个可能的原因:
我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-omnibus 。 vagrant-omnibus支持几个提供者,包括vagrant-aws ,并且还支持一些不同的发行版。
这一般一样简单:
$ vagrant plugin install vagrant-omnibus并添加一行configuration到你的Vagrantfile ,
在这里得到了同样的问题…暂时我修复了它的运行:
vagrant ssh -c 'sudo ln -s /opt/chef/bin/* /usr/local/bin/'
但是这是一个糟糕的解决办法…我希望能尽快find更好的东西。