首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到Vagrant & Chef - Cookbook *

找不到Vagrant & Chef - Cookbook *
EN

Stack Overflow用户
提问于 2014-12-29 19:06:01
回答 1查看 1.7K关注 0票数 0

我正在尝试设置一个简单的开发虚拟机,使用vagrant和Chef作为配置器。我可以使用shell provisioner安装chef,但在我看来,包含chef菜谱的文件夹并没有挂载到VM上。它一直抱怨没有找到食谱*。下面是我得到的流浪汉文件和输出

代码语言:javascript
运行
复制
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant::Config.run do |config|
  # This strange method defines the name of the Vagrant Machine
  config.vm.define "SubscriptionAPI" do |foobar|
  end

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "chef/centos-6.5"

  # The url from where the 'config.vm.box' box will be fetched if it
  # doesn't already exist on the user's system.
  # config.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/centos-65-x64-virtualbox-nocm.box"

  # Boot with a GUI so you can see the screen. (Default is headless)
  # config.vm.boot_mode = :gui

  # Assign this VM to a host-only network IP, allowing you to access it
  # via the IP. Host-only networks can talk to the host machine as well as
  # any other machines on the same network, but cannot be accessed (through this
  # network interface) by any external networks.
  config.vm.network :hostonly, "192.168.99.101"

  # Assign this VM to a bridged network, allowing you to connect directly to a
  # network using the host's network device. This makes the VM appear as another
  # physical device on your network.
  # config.vm.network :bridged

  # Forward a port from the guest to the host, which allows for outside
  # computers to access the VM, whereas host only networking does not.
  config.vm.forward_port 80, 8080
  config.vm.forward_port 443, 44343

  # Share an additional folder to the guest VM. The first argument is
  # an identifier, the second is the path on the guest to mount the
  # folder, and the third is the path on the host to the actual folder.
  # config.vm.share_folder "www", "/www", "../www"

  # Make sure the chef is intalled to the VM
  config.vm.provision "shell", path: "provisioning/utils/tools/install_chef.bash"

  # Enable provisioning with chef solo, specifying a cookbooks path, roles
  # path, and data_bags path (all relative to this Vagrantfile), and adding 
  # some recipes and/or roles.
  #
  config.vm.provision :chef_solo do |chef|
    chef.roles_path = "provisioning/chef/roles"
    chef.cookbooks_path = "provisioning/chef/cookbooks"
    chef.add_role "vagrant-test-box"

  #  chef.cookbooks_path = "provisioning/chef/cookbooks"
  #  chef.add_recipe "httpd"
  #  chef.roles_path = "chef/roles"
  #  chef.data_bags_path = "chef/databags"
  #  chef.add_role "devbox"
  #
  #   # You may also specify custom JSON attributes:
  #   chef.json = { :mysql_password => "foo" }
  end

  config.vm.host_name = "subscriptionapi"

end

输出

代码语言:javascript
运行
复制
==> SubscriptionAPI: Thank you for installing Chef!
==> SubscriptionAPI: Running provisioner: chef_solo...
Generating chef JSON and uploading...
==> SubscriptionAPI: Running chef-solo...
==> SubscriptionAPI: [2014-12-24T12:20:04+00:00] INFO: Forking chef instance to converge...
==> SubscriptionAPI: [2014-12-24T12:20:04+00:00] INFO: *** Chef 12.0.3 ***
==> SubscriptionAPI: [2014-12-24T12:20:04+00:00] INFO: Chef-client pid: 3442
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] INFO: Setting the run_list to ["role[vagrant-test-box]"] from CLI options
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] INFO: Run List is [role[vagrant-test-box]]
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] INFO: Run List expands to [httpd]
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] INFO: Starting Chef Run for subscriptionapi
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] INFO: Running start handlers
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] INFO: Start handlers complete.
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] ERROR: Running exception handlers
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] ERROR: Exception handlers complete
==> SubscriptionAPI: [2014-12-24T12:20:08+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> SubscriptionAPI: [2014-12-24T12:20:09+00:00] ERROR: Cookbook httpd not found. If you're loading httpd from another cookbook, make sure you configure the dependency in your metadata
==> SubscriptionAPI: [2014-12-24T12:20:09+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.

配置/chef/roles/vagrant-test-box.rb

代码语言:javascript
运行
复制
# Name of the role should match the name of the file
name "vagrant-test-box"

# Run list function we mentioned earlier
run_list(
    "recipe[httpd]"
)

provisioning/chef/cookbooks/httpd/recipes/default.rb

代码语言:javascript
运行
复制
package("httpd")

我一直在努力解决这个问题,方法是一遍又一遍地挖掘互联网并检查不同类型的权限--但仍然一无所获

EN

回答 1

Stack Overflow用户

发布于 2014-12-29 19:41:31

我找到问题了。这是流浪汉-贝克架插件导致的问题。卸载它可以让一切工作得无懈可击

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27687647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档