2013-03-15 142 views
7

添加配方RVM ::流浪汉,流浪汉运行后提供我:流浪/厨师独奏::流浪汉

/usr/local/bin/chef-solo: line 23: /opt/vagrant_ruby/bin/chef-solo: No such file 
or directory 
Chef never successfully completed! Any errors should be visible in the 
output above. Please fix your recipes so that they properly complete. 

这个问题应该已得到修复: https://github.com/fnichol/chef-rvm/issues/121

即使我添加一行:

'rvm' => { 
    'vagrant' => { 
     'system_chef_solo' => '/opt/vagrant_ruby/bin/chef-solo' 
    } 
    } 

我仍然得到错误。我如何从中恢复?

+0

您是否尝试删除然后再次创建该框? – cmur2 2013-03-15 19:59:30

+0

我结束了切换到rbenv这个实验。 – mbdev 2013-03-16 00:42:57

回答

6

您必须确保'/ opt/vagrant_ruby/bin/chef-solo'是chef-solo的实际路径。在我的情况下,它是/usr/bin/chef-solo。这是我Vagrantfile是固定它的一部分:

config.vm.provision :chef_solo do |chef| 
    chef.json.merge! rvm: {vagrant: {system_chef_solo: '/usr/bin/chef-solo'}} 
end 
+0

谢谢!我会花一些时间看看我的问题是否仍然相关,并验证答案。我的节点上的 – mbdev 2013-05-29 13:14:23

+1

,chef-solo安装在/ usr/local/bin/chef-solo,并且在Vagrantfile中显示的设置路径也不起作用。该死,它工作很好,直到我添加了流浪食谱。 – wkhatch 2013-06-30 23:04:14

+0

我能指出围绕合并条件需要括号吗{rvm:{...} – simonmorley 2013-08-21 14:41:59

0

这一直是令人沮丧的答案是非常依赖于时间。我有这个问题,但今天通过添加到我的流浪文件来修复它。我不得不vagrant destroyvagrant up所以希望这不会打破下一次我vagrant provision但我已经在框中检查,它看起来像厨师独奏的路径是正确的。在Github上找到答案here

chef.json = { 
    rvm: { 
     vagrant: { 
      system_chef_solo: '/opt/chef/bin/chef-solo' 
     }, 
     user_installs: [ 
      { 
       user: 'vagrant', 
       default_ruby: '2.2.1', 
       rubies: ['2.2.1'], 
       global: '2.2.1' 
      } 
     ] 
    }, 
... rest of Vagrantfile