我正在撰写主厨食谱食谱,旨在将文件放到节点服务器上。
cookbook_file "/path/to/node/dir/file_name" do
source "file_name"
owner "ec2-user"
group "ec2-user"
end
我打算允许这本食谱的用户将源文件放在他/她的刀独奏存储库" site-cookbooks" 目录中。
问题是此配置会在Chef::Exceptions::FileNotFound: Cookbook 'my-cookbook' (0.1.0) does not contain a file at any of these locations: ...
部署时抛出knife solo cook
。
我尝试在刀片独奏存储库cookbook_path
文件中指定不同的.chef/knife.rb
选项,但未成功。
实现这一目标的正确方法是什么?或者厨师不是这样工作的,如果是这样,那么首选的替代方法是什么?这是一个标志,我应该将食谱和刀独奏库整合到一个单独的刀库中吗?
答案 0 :(得分:2)
cookbooks
与site-cookbooks
(以及cookbooks_path
的所有其他变体)只是关于从哪里加载cookbook。 source
资源属性仅查找cookbook中的内容,而不是直接查找其中一个路径。你的资源声明中没有明确的食谱,所以它会在食谱中查找代码所在的食谱。因为它是cookbook_file
,它必须在{{{ 1}}食谱中的子文件夹。
没有办法告诉Chef或knife-solo发送和使用随机的松散文件,就像我认为你建议的那样,它都是基于cookbook和其他Chef数据类型。您可以使用files/
资源并允许配方从用户指定的HTTPS服务器中提取。