1

我正在编写一个厨师食谱食谱,旨在将文件放置到节点服务器上。

  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文件中指定不同的选项,但没有成功。

实现这一目标的正确方法是什么?或者厨师不是这样工作的,如果是这样,首选的替代方法是什么?这是我应该将食谱和刀单存储库合并为一个单刀存储库的标志吗?

4

1 回答 1

2

cookbooksvs. site-cookbooks(和所有其他变体cookbooks_path)只是从哪里加载食谱。资源属性仅在source食谱中查找内容,而不是直接在其中一个路径中查找。您的资源声明中没有明确的食谱,因此它将在食谱中查找代码所在的食谱。因为它是cookbook_file,所以它必须位于files/食谱内的子文件夹中。

没有办法告诉厨师或刀单人发送和使用随机松散文件,就像我认为你建议的那样,它都是基于食谱和其他厨师数据类型的。您可以使用remote_file资源并允许配方从用户指定的 HTTPS 服务器中提取。

于 2015-01-04T05:24:33.673 回答