centos - Knife Cookbook 安装后 Vagrant Box 损坏

标签 centos chef-infra vagrant knife

我是一名 Vagrant n00b,在使用 chef-solo 设置一个非常简单的 CentOS LAMP 盒时,我遇到了让 Vagrant 和 Chef 的 knife 命令一起玩得很好的问题。

这里是这个问题的简要概述:

<醇>
  • 我在 vagrantbox.es 上使用带有 Chef base box 的 CentOS 6.3 创建了一个基本的 Vagrantfile。您可以在 this gist 中查看基础知识.
  • 我已经通过 knife cookbook site install nameofcookbook 下载了所有的 Recipe ,使用的配置将它们放在 ./chef/cookbooks 中。
  • 我已成功运行 vagrant up 您可以在 this gist 中查看基础知识.
  • 我已经测试了 apache、php 等。都很好。
  • 技巧来了:在 VM 运行的情况下,我运行 knife 添加另一个包(在本例中为 i3)
  • 从这里开始,Vagrant 无法在 VM 中执行各种任务:
  • 当我运行 vagrant provision 时出现这样的错误

    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 时,我收到一条错误消息,提示 ssh 命令退出时出现非零错误代码。

  • 不过,我可以运行 vagrant ssh,并确认 (a) chef-solo 实际上存在于框中,并且 (b) 我可以通过框中的命令行关闭.
  • 当我运行 vagrant up 时,出现如下错误:
    The following SSH command responded with a non-zero exit status.
    Vagrant assumes that this means the command failed!
    mkdir -p /vagrant</li>
    

  • 我很难过。我已经在两个盒子上遇到过这种情况,我知道 Knife 和 Vagrant 应该可以很好地协同工作。

    我做错了什么?

    非常感谢任何帮助,我对深入研究 Vagrant 感到非常兴奋!

    最佳答案

    chef.add_recipe "sudo"
    

    在第一次运行后修改你的 sudo 文件。

    将适当的 json 添加到您的 vagrant 用户的 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
    

    关于centos - Knife Cookbook 安装后 Vagrant Box 损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13124564/

    相关文章:

    vagrant - Ansible 未设置 Postgres 用户密码

    nginx - 反向代理时出现 FaSTLy 错误

    Python 3 没有名为 '_ssl' 的模块

    ssh - 奇怪的 Vagrant/SSH 连接行为

    ruby-on-rails - 乘客 Rails 4 应用程序启动 = 未初始化的常量 ActiveModel::Serializer

    mysql - 使用 vagrant 导入数据库 mysql。没有这样的文件或目录

    linux - 更改/etc 权限后 SSH 拒绝在 CentOS 上连接

    php - 时间戳在 phpmyadmin 中显示错误的时间

    amazon-ec2 - 测试厨房几乎每次传输文件都会失败

    ssh - vagrant up 卡在 ssh 上