厨师独奏的麻烦 "Missing Cookbooks"

Trouble with chef-solo "Missing Cookbooks"

我正在尝试 运行 厨师独奏,我有以下配置

/var/chef

├── cookbooks
│   ├── cc_db
│   │   ├── Berksfile
│   │   ├── Berksfile.lock
│   │   ├── chefignore
│   │   ├── metadata.rb
│   │   ├── recipes
│   │   │   └── default.rb
├── node.json
└── solo.rb

node.json

{
  "run_list": [ "recipe[cc_db]" ]
}

solo.rb

file_cache_path "/var/chef"
  cookbook_path "/var/chef/cookbooks"
  json_attribs "/var/chef/node.json"

metadata.rb

depends 'database', '~> 5.1.2'
depends 'mysql2_chef_gem', '~> 1.0'

我已经让它在厨房测试环境中工作,但我现在正在使用 chef-solo 在不同的服务器上尝试它。

每当我运行: 厨师独奏-c solo.rb

我得到:

resolving cookbooks for run list: ["cc_db"]

================================================================================
Error Resolving Cookbooks for Run List:
================================================================================

Missing Cookbooks:
------------------
No such cookbook: database

Expanded Run List:
------------------
* cc_db

Platform:
---------
x86_64-linux


Running handlers:
[2016-09-20T15:34:05-04:00] ERROR: Running exception handlers
Running handlers complete
[2016-09-20T15:34:05-04:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 02 seconds
[2016-09-20T15:34:05-04:00] FATAL: Stacktrace dumped to /var/chef/chef-stacktrace.out
[2016-09-20T15:34:05-04:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2016-09-20T15:34:05-04:00] ERROR: 412 "Precondition Failed"
[2016-09-20T15:34:05-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

我很困惑,因为数据库 cookbook 似乎是用 berks 安装的,但 chef 没有捡起来。

如有任何帮助,我们将不胜感激。

谢谢。 迈尔斯.

Chef 不直接与 Berkshelf 集成,因此 chef-solo 对此一无所知。通常你会使用类似 knife-solo 的东西将它们联系在一起,但你也可以手动完成。 运行 berks vendor /path/to/a/folder 然后将该文件夹设置为 cookbook_path.

我最终只是解决了这个问题。

我在虚拟主机上设置了一个厨师服务器,并对其进行了一些最终级别的测试。我创建了节点,引导它们,然后在节点上 运行 chef-client。

我也没有很大的服务器配置,所以我只是手动上传了cookbooks和依赖的cookbooks。我很确定这就是零号厨师失败的原因。在未来的某个时候,我会让 Berkshelf 与所有东西一起工作,以帮助简化食谱依赖过程。