https://github.com/lework/jenkins-update-center
https://lework.github.io/2020/03/05/jenkins-update-center/
https://www.haxi.cc/archives/change-jenkins-plugin-mirror.html
https://www.north-47.com/update-jenkins-plugins-behind-a-corporate-proxy/
https://zhuanlan.zhihu.com/p/125558756
一、修改 UpdateCenter
UpdateCenter 指定获取更新文件(update-center.json)的地址。
该文件(update-center.json)下载后,将会被修改后存入 .jenkins/updates/目录。
修改 .jenkins/hudson.model.UpdateCenter.xml
如下
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
sed 命令替换:
sed -i 's#https://updates.jenkins.io/update-center.json#https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/updates/huawei/update-center.json#' /var/lib/jenkins/hudson.model.UpdateCenter.xml
如上也可在图形界面修改,"Manage Jenkins" ---> "Manage Plugins" ---> "Advanced Settings" ---> "Update Site"
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
。
![](https://img.haomeiwen.com/i18908711/df9c0fe4bef9db61.png)
2023-06-28 09:17:43.752+0000 [id=42] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Download metadata
2023-06-28 09:17:43.786+0000 [id=42] INFO hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2023-06-28 09:17:44.332+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization
2023-06-28 09:17:44.480+0000 [id=22] INFO hudson.WebAppMain$3#run: Jenkins is fully up and running
2023-06-28 09:18:02.065+0000 [id=42] WARNING h.m.DownloadService$Downloadable#updateNow: No tool installer metadata found for hudson.tasks.Maven.MavenInstaller
2023-06-28 09:18:02.066+0000 [id=42] INFO hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1
2023-06-28 09:18:02.069+0000 [id=42] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Download metadata. 18,316 ms
如上,Jenkisn启动后,开始下载更新文件。
倒数三行日志是下载update-center.json
的日志,update-center.json
会被转义到 .jenkins/updates/default.json
文件。该文件保存着当前版本的依赖关系。
案例:
Jenkins latest 版本2.412
,但是需要部署低版本,以与生产环境2.277.1
保持一致。
在初始化插件的时候,大部分安装不上,会提示 Jenkins (2.289.1) or higher required ,插件依赖于更高版本的Jenkins。
二、修改从清华源下载插件
上面的配置修改的下载 update-center.json
的路径,update-center.json
内下载插件的路径任然源自 jenkins。如下对插件的下载地址进行替换:
https://updates.jenkins.io/download 替换为 https://mirrors.tuna.tsinghua.edu.cn/jenkins
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
三、报错解决 - Signature verification failed in update site
Jenkins 修改清华源后,提示日志报错信息 “Signature verification failed in update site”
Jenkins: signature verification failed in update site 'default' (show details) - Stack Overflow
解决:Jenkins: signature verification failed in update site ‘default‘ (show details)_老徐爱编程的博客-CSDN博客
解决方式:
增加配置 -Dhudson.model.DownloadService.noSignatureCheck=true
java -Dhudson.model.DownloadService.noSignatureCheck=true -jar jenkins.2.277.1.war
附一:updates/default.json 文件解析
cat .jenkins/updates/default.json |jq 'keys'
[
"connectionCheckUrl",
"core",
"deprecations",
"generationTimestamp",
"id",
"plugins",
"signature",
"updateCenterVersion",
"warnings"
]
cat .jenkins/updates/default.json |jq '.plugins'
查看所有 plugins 信息,略
cat .jenkins/updates/default.json |jq '.plugins.zoom'
查看 zoom 插件详细信息
cat .jenkins/updates/default.json |jq '.plugins."maven-plugin"'
查看 maven-plugin 插件详细信息
{
"buildDate": "Apr 28, 2023",
"defaultBranch": "master",
"dependencies": [
{
"name": "commons-lang3-api",
"optional": false,
"version": "3.12.0-36.vd97de6465d5b_"
},
{
"name": "apache-httpcomponents-client-4-api",
"optional": false,
"version": "4.5.13-1.0"
},
{
"name": "javadoc",
"optional": false,
"version": "217.v905b_86277a_2a_"
},
{
"name": "jsch",
"optional": false,
"version": "0.1.55.2"
},
{
"name": "junit",
"optional": false,
"version": "1119.va_a_5e9068da_d7"
},
{
"name": "mailer",
"optional": false,
"version": "414.vcc4c33714601"
},
{
"name": "token-macro",
"optional": true,
"version": "293.v283932a_0a_b_49"
}
],
"developers": [
{
"developerId": "integer",
"name": "Kanstantsin Shautsou"
},
{
"developerId": "jglick",
"name": "Jesse Glick"
},
{
"developerId": "kohsuke",
"name": "Kohsuke Kawaguchi"
},
{
"developerId": "olamy",
"name": "Olivier Lamy"
},
{
"developerId": "olivergondza",
"name": "Oliver Gondža"
},
{
"developerId": "aheritier",
"name": "Arnaud Héritier"
},
{
"developerId": "jtaboada",
"name": "Jose Blas Camacho Taboada"
}
],
"excerpt": "This plugin provides a deep integration between Jenkins and Maven. It adds support for automatic triggers between projects depending on SNAPSHOTs as well as the automated configuration of various Jenkins publishers such as Junit.",
"gav": "org.jenkins-ci.main:maven-plugin:3.22",
"issueTrackers": [
{
"reportUrl": "https://www.jenkins.io/participate/report-issue/redirect/#16033",
"type": "jira",
"viewUrl": "https://issues.jenkins.io/issues/?jql=component=16033"
}
],
"labels": [
"builder"
],
"name": "maven-plugin",
"popularity": 142274,
"previousTimestamp": "2023-03-01T03:31:07.00Z",
"previousVersion": "3.21",
"releaseTimestamp": "2023-04-28T07:42:14.00Z",
"requiredCore": "2.332.1",
"scm": "https://github.com/jenkinsci/maven-plugin",
"sha1": "iVu4F5xFOzzMzV6ISJRxU6nqwNQ=",
"sha256": "a1vbnllzvvspscrWflgLVOYTJttgWa8xzw37Xb0U7G0=",
"size": 5488120,
"title": "Maven Integration",
"url": "https://updates.jenkins.io/download/plugins/maven-plugin/3.22/maven-plugin.hpi",
"version": "3.22",
"wiki": "https://plugins.jenkins.io/maven-plugin"
}
下载插件的地址是,"url": "https://updates.jenkins.io/download/plugins/maven-plugin/3.22/maven-plugin.hpi"
网友评论