簡體   English   中英

解決廚師 - 獨奏食譜依賴關系

[英]Resolving chef-solo cookbook dependencies

我正在嘗試在我的工作站上運行廚師獨奏以在本地應用一些設置。 我的配方取決於我在metadata.rb和Berksfile中指定的幾個外部cookbook。 chef-client運行失敗,並顯示以下錯誤消息。

我想知道當chef-solo運行時是否有辦法自動下載依賴項?

user@ubuntu:~/chef-solo$ chef-solo -c solo.rb -j solo.json

Starting Chef Client, version 12.8.1
Installing Cookbook Gems:
Compiling Cookbooks...

Running handlers:
[2016-03-28T16:32:36+00:00] ERROR: Running exception handlers
Running handlers complete
[2016-03-28T16:32:36+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 03 seconds
[2016-03-28T16:32:36+00:00] FATAL: Stacktrace dumped to /home/user/chef-solo/chef-stacktrace.out
[2016-03-28T16:32:36+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2016-03-28T16:32:36+00:00] ERROR: Cookbook apt not found. If you're loading apt from another cookbook, make sure you configure the dependency in your metadata

solo.rb

root = File.absolute_path(File.dirname(__FILE__))
file_cache_path root
cookbook_path root + '/cookbooks'

solo.json

{
    "run_list": [ "recipe[test::default]" ]
}

Berksfile

source 'https://supermarket.chef.io'

cookbook 'apt'
metadata

metadata.rb

name 'test'
maintainer 'The Authors'
maintainer_email 'you@example.com'
license 'all_rights'
description 'Installs/Configures test'
long_description 'Installs/Configures test'
version '0.1.0'

depends 'apt'

Berkshelf是Chef世界中一個流行的工具,用於自動安裝cookbook依賴項(您提到的Berksfile與此相關)。 如果還沒有,請安裝berkshelf。

$ gem install berkshelf

請注意你的solo.rb文件中的行...

cookbook_path root + '/cookbooks'

......那就是Chef希望你把依賴關系放在哪里。 如果沒有Berkshelf,您需要使用knife將apt安裝到cookbook文件夾中。 (注意:cookbook /必須是git repo ...)

$ knife cookbook site install apt

但是既然你有一個Berksfile,你很可能想在Berksfile所在的同一個文件夾中使用下面的命令......

$ berks vendor ../

這將在父目錄中安裝當前文件夾的依賴項。 您可能需要根據root cookbooks文件夾的位置指定其他位置。

您可能還想知道為什么必須兩次指定依賴項,一次在Berksfile ,一次在metadata.rb文件中。 我也是 ;)

由於下載管理是Chef-client為您處理的事情之一,因此您專門選擇退出該功能,因此沒有內置於chef-solo的內容。 制作一個調用berks vendor cookbooks/的包裝腳本非常容易,然后將Chef-solo瞄准該文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM