错误:在路径中加载的食谱包含无效的元数据

时间:2015-01-07 03:23:03

标签: ruby vagrant chef chef-solo vagrantfile

当我跑步时:

:$ vagrant provision

:$ vagrant up

我有一个错误:

nisevi@localhost processor (master):$ vagrant provision
Using ssh deploy key of: /home/nisevi/.ssh/id_rsa
==> default: Chef 12.0.3 Omnibus package is already installed.
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: W
==> default: : 
==> default: Duplicate sources.list entry http://security.ubuntu.com/ubuntu/ trusty-security/multiverse amd64 Packages (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_trusty-security_multiverse_binary-amd64_Packages)
==> default: W
==> default: : Duplicate sources.list entry http://security.ubuntu.com/ubuntu/ trusty-security/multiverse i386 Packages (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_trusty-security_multiverse_binary-i386_Packages)
==> default: W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ trusty/multiverse amd64 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_trusty_multiverse_binary-amd64_Packages)
==> default: W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ trusty/multiverse i386 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_trusty_multiverse_binary-i386_Packages)
==> default: W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ trusty-updates/multiverse amd64 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_trusty-updates_multiverse_binary-amd64_Packages)
==> default: W: Duplicate sources.list entry http://archive.ubuntu.com/ubuntu/ trusty-updates/multiverse i386 Packages (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_trusty-updates_multiverse_binary-i386_Packages)
==> default: W: You may want to run apt-get update to correct these problems
==> default: Running provisioner: chef_solo...
==> default: Detected Chef (latest) is already installed
Generating chef JSON and uploading...
==> default: Running chef-solo...
==> default: [2015-01-07T03:09:42+00:00] INFO: Forking chef instance to converge...
==> default: [2015-01-07T03:09:42+00:00] INFO: *** Chef 12.0.3 ***
==> default: [2015-01-07T03:09:42+00:00] INFO: Chef-client pid: 1224
==> default: [2015-01-07T03:09:50+00:00] INFO: Setting the run_list to ["role[processor]"] from CLI options
==> default: [2015-01-07T03:09:50+00:00] INFO: Run List is [role[processor]]
==> default: [2015-01-07T03:09:50+00:00] INFO: Run List expands to [opsworks_initial_setup, mysql::client, dependencies, opsworks_ganglia::client, deploy::default, ba-processor::setup, ba-processor::deploy, sidekiq::deploy, opsworks_ganglia::configure-client]
==> default: [2015-01-07T03:09:50+00:00] INFO: Starting Chef Run for ubuntu1404-opsworks
==> default: [2015-01-07T03:09:50+00:00] INFO: Running start handlers
==> default: [2015-01-07T03:09:50+00:00] INFO: Start handlers complete.
==> default: [2015-01-07T03:09:51+00:00] WARN: found a directory vendor in the cookbook path, but it contains no cookbook files. skipping.
==> default: [2015-01-07T03:09:51+00:00] ERROR: Running exception handlers
==> default: [2015-01-07T03:09:51+00:00] ERROR: Exception handlers complete
==> default: [2015-01-07T03:09:51+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
==> default: [2015-01-07T03:09:51+00:00] ERROR: Cookbook loaded at path(s) [/tmp/vagrant-chef-3/chef-solo-2/cookbooks/tad-server] has invalid metadata: The `name' attribute is required in cookbook metadata
==> default: [2015-01-07T03:09:51+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.

有谁知道导致此错误的原因或相关内容是什么?

2 个答案:

答案 0 :(得分:7)

如错误提及,您必须在此食谱中添加name 'tad-server' metadata.rb个文件。在很长一段时间里,这是可选的,因此许多人根本没有在他们的烹饪书中放置metadata.rb,但现在有些工具至少需要这个。元数据中的所有其他字段仍然是可选的,但强烈建议使用version

答案 1 :(得分:1)

您需要将cookbook名称添加到cookbook目录中的metadata.rb文件中。 我刚刚与厨师 - 客户食谱进行了讨论。上传失败,直到我将以下行添加到chef-client / metadata.rb

x = 15