2016-09-21 72 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與所有事情一起工作,以幫助緩解食譜依賴過程。