这个答案的后续。
跑厨师独奏:
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安装的食谱包含版本后缀
user@host ~ $ ls ~/.berkshelf/cookbooks/ terraform-0.5.3
如果将terraform-0.5.3重命名为terraform并再次运行chef-solo,则会findterraform 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
这种方法有一些副作用:
您不直接使用berkshelf存储文件夹,它是一个存储文件夹。 要以Chef可以使用的格式导出,请运行berks vendor FOLDERNAME/
。