我对 Chef、Vagrant 和 Test-Kitchen 越来越着迷。
我们有一份定制的 Jenkins Cookbook,它可以在没有合作网络代理的“普通”客户端上运行,但会失败并出现以下错误。
- create new file /tmp/kitchen/cache/jenkins-cli.jar
- update content in file /tmp/kitchen/cache/jenkins-cli.jar from none to 0b49c2
(new content is binary, diff output suppressed)
* remote_file[/tmp/kitchen/cache/update-center.json] action create_if_missing
[2015-05-11T16:28:32+00:00] ERROR: Error connecting to http://mirrors.jenkins-ci.org/updates/update-center.json, retry 1/5
[2015-05-11T16:30:43+00:00] ERROR: Error connecting to http://mirrors.jenkins-ci.org/updates/update-center.json, retry 2/5
[2015-05-11T16:32:54+00:00] ERROR: Error connecting to http://mirrors.jenkins-ci.org/updates/update-center.json, retry 3/5
[2015-05-11T16:35:06+00:00] ERROR: Error connecting to http://mirrors.jenkins-ci.org/updates/update-center.json, retry 4/5
[2015-05-11T16:37:17+00:00] ERROR: Error connecting to http://mirrors.jenkins-ci.org/updates/update-center.json, retry 5/5
所有其他资源均下载无任何问题(使用 vagrant 代理插件)。主机基于 Windows 7,客户机是 CentOS 6.6
问题已确定:jenkins-cli.jar 未使用系统代理,登录虚拟机后无法下载插件。但目前尚未找到解决方案 (;
答案1
作为一种快速解决方法,只需设置属性:
default['jenkins']['master']['mirror'] = 'http://example.lan'
指向本地 HTTP 服务器,其中http://example.lan/updates/update-center.json
是一个空的 JSON 文件(或者,一般来说,服务器对请求返回 200 GET /updates/update-center.json
)。
另外,请查看这行代码。