2013-03-15 145 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