我正在尝试使用 Policyfile 将 Artifactory 存储库配置为食谱的来源。我正在使用手动上传/ curl 将食谱发布到/chef
artifactory 中的 repo(这也是新的) - 我无法用炉子发布,现在想避免刀艺术。chef install
运行失败。
我不确定上传或厨师安装是否有问题,并且没有从厨师那里获得调试信息。
食谱上传
curl --user "myuser:API_KEY" --data-binary @mycookbook.tar.gz -X PUT https://my-artifactory-server/artifactory/chef/mycookbook.tar.gz
我也尝试将其添加到/chef/mycookbook/mycookbook.tar.gz
. 路径或工件名称中没有版本,但元数据是有效的。是否需要版本?
策略文件.rb
default_source :artifactory, "https://my-artifactory-server/artifactory/chef"
cookbook 'mycookbook'
run_list 'mycookbook::default'
我也尝试过使用/artifactory/api/chef/
and/artifactory/api/chef/chef
作为 URI。ARTIFACTORY_API_KEY 变量设置为我的用户 API 密钥。
从包含策略文件的目录中,我运行chef install -D
- 调试信息不多,但这是我得到的输出。
$ chef install --debug
Building policy mypol
Expanded run list: recipe[mycookbook::default]
Caching Cookbooks...
Error: Failed to generate Policyfile.lock
Reason: (Solve::Errors::NoSolutionError) Unable to satisfy the following requirements:
- `mycookbook (>= 0.0.0)` required by `user-specified dependency`
已尝试查看 Artifactory 日志以了解可能有什么问题,但看不到太多 - requests.log 显示一个 GET ,/artifactory/api/chef/chef/universe
它为正文返回 OK {}
- 所以假设菜谱没有被添加到菜谱中某种清单?Artifactory 版本是 5.10。
我尝试添加一个为“厨师”本地存储库提供服务的虚拟存储库并使用它更新策略文件,但得到相同的结果。