Chef - 食谱包找不到候选版本

Chef - Recipe package fails to find candidate version

我正在使用 Chef 安装和配置非常基本的 Jenkins 安装。当我尝试 运行 以下食谱时:

include_recipe "apt::default"

apt_repository "jenkins" do
  uri "http://pkg.jenkins-ci.org/debian"
  key "http://pkg.jenkins-ci.org/debian/jenkins-ci.org"
  components ["binary/"]
  action :add
end

package "jenkins" do
  version '2.62'
end


service "jenkins" do
  supports [:stop, :start, :restart]
  action [:start, :enable]
end

我收到以下错误(显示在终端中):

192.168.9.207 [2017-05-25T10:50:58-04:00] ERROR: Running exception handlers
192.168.9.207 Running handlers complete
192.168.9.207 [2017-05-25T10:50:58-04:00] ERROR: Exception handlers complete
192.168.9.207 Chef Client failed. 2 resources updated in 20 seconds
192.168.9.207 [2017-05-25T10:50:58-04:00] INFO: Sending resource update report (run-id: 2b59b80e-b787-4e93-805b-837b4d3264fb)
192.168.9.207 [2017-05-25T10:50:58-04:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
192.168.9.207 [2017-05-25T10:50:58-04:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
192.168.9.207 [2017-05-25T10:50:58-04:00] ERROR: apt_package[jenkins] (jenkins-installation::default line 21) had an error: Chef::Exceptions::Package: No candidate version available for jenkins
192.168.9.207 [2017-05-25T10:50:58-04:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

错误说明没有可用于 Jenkins 的候选版本。 运行 失败后,如果我在受管节点上 运行 sudo apt-get update 我收到以下错误:

Err http://pkg.jenkins-ci.org trusty/binary/ amd64 Packages                    
  404  Not Found
Err http://pkg.jenkins-ci.org trusty/binary/ i386 Packages           
  404  Not Found
Ign http://pkg.jenkins-ci.org trusty/binary/ Translation-en_US       
Ign http://pkg.jenkins-ci.org trusty/binary/ Translation-en
Fetched 5,976 kB in 3s (1,528 kB/s)             
W: Failed to fetch http://pkg.jenkins-ci.org/debian/dists/trusty/binary//binary-amd64/Packages  404  Not Found

W: Failed to fetch http://pkg.jenkins-ci.org/debian/dists/trusty/binary//binary-i386/Packages  404  Not Found

E: Some index files failed to download. They have been ignored, or old ones used instead.

我是 Chef 的新手。此错误似乎与检索 Jenkins 包有关,但我不确定如何解决此错误。如果需要其他信息来解决此问题,请告诉我。

提前感谢大家提供的任何指导。我搜索了 Chef 文档,但除了指定包版本之外没有看到太多内容:https://docs.chef.io/resource_package.html.

指定 distribution 'binary/' 而不是 components 'binary/'。这将修复您因 trusty/binary/.

而获得的 404。

至少,这是我从 "official" Jenkins cookbook 中看到的,我顺便说一句。建议使用

编辑:所以结果是:

apt_repository "jenkins" do
  uri "http://pkg.jenkins-ci.org/debian"
  key "http://pkg.jenkins-ci.org/debian/jenkins-ci.org"
  distribution "binary/"
end