美文网首页
jenkins 下载插件失败 not match expecte

jenkins 下载插件失败 not match expecte

作者: 打眼 | 来源:发表于2020-11-16 22:28 被阅读0次
    症状

    前两天还能正常下载插件,今天突然不行了,不管下载什么插件都是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 expecte

          本文链接:https://www.haomeiwen.com/subject/dnqtiktx.html