后续行动这个答案。
独自奔跑的厨师:
sudo chef-solo -c config.rb -j config.json
Starting Chef Client, version 12.16.42
resolving cookbooks for run list: ["terraform"]
================================================================================
Error Resolving Cookbooks for Run List:
================================================================================
Missing Cookbooks:
------------------
No such cookbook: terraform
Expanded Run List:
------------------
* terraform
Platform:
---------
x86_64-linux
使用 berkshelf 安装的 Cookbook 包含版本后缀
user@host ~ $ ls ~/.berkshelf/cookbooks/
terraform-0.5.3
如果将 terraform-0.5.3 重命名为 terraform 并再次运行 chef-solo,则会找到 terraform cookbook,但找不到另一个:
Missing Cookbooks:
------------------
No such cookbook: build-essential
尝试解决问题
通过从以下目录中的所有食谱中删除后缀版本,解决了该问题:
user@host ~ $ ls ~/.berkshelf/cookbooks/
ark ark-1.1.0 build-essential-7.0.2 compat_resource compat_resource-12.16.2 mingw mingw-1.2.4 ohai ohai-4.2.2 seven_zip seven_zip-2.0.2 terraform-0.5.3 windows windows-2.1.1
这种方法有一些副作用:
- 每次运行 berks install 时,都会再次下载食谱
- 每次都需要删除后缀
答案1
您不能直接使用 berkshelf 存储文件夹,它是一个存储文件夹。要以 Chef 可以使用的格式导出,请运行berks vendor FOLDERNAME/
。