7

添加配方 rvm::vagrant 并运行 vagrant provision 后,我得到:

/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'
    }
  }

我仍然收到错误消息。我怎样才能从中恢复?

4

2 回答 2

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
于 2013-05-29T06:15:39.130 回答
0

这令人沮丧,因为答案非常依赖时间。不过我遇到了这个问题,今天通过添加到我的 Vagrantfile 来修复它。我不得不一次vagrant destroy又一次地vagrant up希望下次我不会破坏vagrant provision它,但我已经检查了盒子,看起来通往 chef-solo 的路径是正确的。在这里的 Github 上找到了这个答案

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
于 2015-09-13T04:11:55.683 回答