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