【发布时间】:2020-09-11 03:56:37
【问题描述】:
我有一个在 Chef 中使用模板的资源,它运行良好。食谱中的其他资源和食谱可以调用此资源。在我的例子中,我定义了一个 maven 工件资源,给定一些 maven 参数(repo 名称、工件 ID 等),您可以从 Nexus maven repo 下载文件。
但是,当我从定义资源之外的任何其他食谱中调用资源时(当然,metadata.rb 指定了依赖项),我得到一个错误
Chef::Exceptions::FileNotFound
------------------------------
template[/usr/local/nexus-download.bash] (/tmp/kitchen/cache/cookbooks/cookbook-1/resources/nexus_http_artifact.rb line 52) had an error: Chef::Exceptions::FileNotFound: Cookbook 'cookbook-2' (1.0.0) does not contain a file at any of these locations:
[...]
该模板基本上是一个 bash 脚本,在检查 MD5 总和并与使用 Nexus HTTP API 的当前下载进行比较之后,稍后运行该脚本以通过网络从 maven 存储库 (Nexus) 下载工件。
【问题讨论】:
-
我应该补充一下 -
cookbook_file也不能在资源中使用,如果您依赖并从另一个食谱调用该资源。
标签: chef-infra