众所周知的原因,在国内访问Jenkins的插件站点不是很稳定,经常访问很慢或者超时。
如果你网上搜索Jenkins更换国内源
等关键字,大多数文章都会告诉你做以下三个步骤:
- 修改"Manage Jenkins"--->"Manage Plugins"--->"Advanced" --->"Update Site" URL为国内源,如
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 把
/var/jenkins_home/updates/default.json
文件内容中https://updates.jenkins.io/download
替换为国内源,如https://mirrors.tuna.tsinghua.edu.cn/jenkins
- 重启Jenkins
第一步有一个坑:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json下载的是始终是最新的插件,和旧版本的Jenkins是不兼容的,要替换为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-VERSION/update-center.json
才能装到匹配的插件版本,其中VERSION
是当前Jenkins的版本。如果不是LTS版本,则dynamic-stable-VERSION
要换成dynamic-VERSION
。
第二步修改了之后,过一段时间你想再装插件你会发现/var/jenkins_home/updates/default.json
这个文件又被恢复成官方的了。此举并不是一劳永逸的,因为Jenkins会定时更新这个文件。
那么有没有更好的办法呢?答案是有的,下面就教大家如何一劳永逸地将Jenkins插件站点换为你想要的任何镜像站点。
方法示意图:
- 修改hosts,使updates.jenkins.io指向nginx的IP
- 配置nginx反向代理,指向你所希望访问的Jenkins插件站点
需要解决一个问题,Jenkins源站点是https协议的,Jenkins会校验SSL证书的有效性,因此我这里将使用nginx的sub_filter模块将update-center.json
返回的内容修改为http协议的。
- 阅读剩余部分 -