jenkins 下载插件失败 not match expected SHA-256 ... actual '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='

症状

前两天还能正常下载插件,今天突然不行了,不管下载什么插件都是SHA校验错误,报错如下:

java.io.IOException: Downloaded file /root/.jenkins/plugins/jenkins-design-language.jpi.tmp does not match expected SHA-256, expected 'rXhNe2BZtuVy2kMHPeHiD8T/rzMSgdAzmjR34i433DE=', actual '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='
at hudson.model.UpdateCenter.throwVerificationFailure(UpdateCenter.java:2019)
at hudson.model.UpdateCenter.verifyChecksums(UpdateCenter.java:2054)
at hudson.model.UpdateCenter$InstallationJob.replace(UpdateCenter.java:2233)
at hudson.model.UpdateCenter$UpdateCenterConfiguration.install(UpdateCenter.java:1343)
at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:1872)
at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2147)
at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1843)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:118)
at java.lang.Thread.run(Thread.java:748)

不管下载什么插件,都是 actual '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=',太巧合了,估计这是个空文件的校验码,实际下载得到了空文件,查看/root/.jenkins/plugins/jenkins-design-language.jpi.tmp文件,果然是空白的。

原因

jenkins插件的下载地址可以在更新源json中找到,更新源默认是 https://updates.jenkins.io/update-center.json,可以在浏览器打开查看,里面插件地址是这样的:

image.png

用浏览器打开插件下载地址,也能成功下载,但是jenkins下载下来就是空的。后来尝试了使用不同地区的代理服务器(在/pluginManager/advanced中配置),发现用香港的代理服务器,jenkins就会出现上面的错误,用美国的代理服务器,jenkins就能正常下载。
使用wget测试插件下载地址,发现连接updates.jenkins.io时,有两次 302 redirect,从不同地区访问时,会转移到本地区的服务器,在国内会转到mirrors.tuna.tsinghua.edu.cn域名,这个转移的过程可能出问题了,官方服务器的问题,从出现这个问题出现一天过去,又自己好了。。

解决方法

1 用其他地区的代理服务器试试

2 更新源json自动下载到updates/default.json文件,找到这个文件,将其中的插件下载地址 https://updates.jenkins.io/download 全部替换为https://mirrors.tuna.tsinghua.edu.cn/jenkins ,然后访问/reload重新加载,注意default.json有缓存时间,超过时间jenkins会自动重新下载覆盖这个文件。(具体效果没测试过)

3 在update-center.json中找到插件的下载地址,手动下载,然后在/pluginManager/advanced页面手动上传安装

4 等官方服务器自己修复

你可能感兴趣的:(jenkins 下载插件失败 not match expected SHA-256 ... actual '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=')