刀具食谱安装后的流浪盒破裂

时间:2012-10-29 15:24:06

标签: centos chef vagrant knife

我和Vagrant n00b在让Vagrant和Chef的knife命令一起玩的过程中遇到问题,因为我正在设置一个非常简单的CentOS LAMP盒子厨师独奏。

以下是该问题的快速概述:

  1. 我使用vagrantbox.es上的CentOS 6.3 w / Chef基本框创建了一个基本的Vagrantfile。您可以在this gist
  2. 中查看基础知识
  3. 我已使用knife cookbook site install nameofcookbook中的./chef/cookbooks配置通过vagrant up下载了所有食谱。
  4. 我已成功运行vagrant provision您可以在this gist中查看基础知识。
  5. 我测试了apache,php等等。一切都很好。
  6. 现在有了诀窍:在VM运行时,我用刀子添加另一个包(在本例中为i3)
  7. 从现在开始,Vagrant无法在VM中执行各种任务:
  8. 当我运行The chef binary (either `chef-solo` or `chef-client`) was not found on the VM and is required for chef provisioning. Please verify that chef is installed and that the binary is available on the PATH. 时,我收到类似的错误

    vagrant halt
  9. 当我运行vagrant ssh时,出现错误,ssh命令以非零错误代码退出。

  10. 然而,我可以运行vagrant up,并确认(a)厨师独奏确实存在于框中,(b)我可以通过框中的命令行关闭。
  11. 当我运行The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! mkdir -p /vagrant</li> 时,我收到如下错误:
    {{1}}
         

  我很难过。我已经在两个盒子上发生了这种情况,我知道Knife和Vagrant应该能够在一起玩得很好。

我做错了什么?

任何帮助都非常感激,我对挖掘Vagrant感到非常兴奋!

1 个答案:

答案 0 :(得分:17)

chef.add_recipe "sudo"

在第一次运行后识别你的sudo文件。

为您的流浪者用户添加适当的json到您的vagrant文​​件。

类似的东西:

config.vm.provision :chef_solo do |chef|

  # add your recipes
  # chef.add_recipe "foo"
  # chef.add_role   "bar"
  chef.json = {
    "authorization" => {
        "sudo" => {
            "users" => [ "vagrant" ],
            "passwordless" => true,
        }
    }
  }
end