2016-09-21 70 views
0

我试图运行厨师独奏,我有以下配置麻烦与厨师独奏 “缺少食谱”

/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' 

我已经得到了这个在厨房测试环境中工作,但我现在尝试在不同的服务器上使用厨师独奏。

每当我跑: 厨师独奏-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) 

我很困惑,因为数据库食谱似乎与伯克斯安装,但厨师ISN”捡起来。

任何帮助将不胜感激。

谢谢。 myles。

回答

0

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

0

我刚刚解决了这个问题。

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

我也没有一个非常大的服务器配置,所以我只是上传手册的食谱和依赖食谱。我相当肯定的是为什么厨师零失败。在将来的某个时候,我会让Berkshelf与所有事情一起工作,以帮助缓解食谱依赖过程。