【研发工具】Jenkins镜像源配置问题及解决方案

一、目的

最近在公司内使用Jenkins时,最开始用的lts-jdk17版本,出现了ssl错误,java验证签名的相关问题,根据AI和网上的说明进行相关配置还是有问题,同时还存在清华源、阿里、华为云不可用,最后测试华为云最新版本需要对应jdk21+以上的jenkins才可用,这里记录一下问题解决过程。

二、Jenkins相关问题

2.1 配置插件源不可用

一开始使用的国内插件源如下,发现不可用了报404错误:

bash 复制代码
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

可快速验证某镜像源是否存活:

bash 复制代码
curl -v "https://mirrors.huaweicloud.com/jenkins/updates/update-center.json"


最后测试多家镜像源,同时翻了一下网上帖子,截至2026年6月,国内部分 Jenkins 镜像源仍可用,但并非全部稳定;清华、阿里、腾讯等源常出现 404 或元数据未同步,华为云镜像源相对可靠,建议优先使用或准备离线安装方案。‌‌
解决方案:
1、使用华为云镜像源,但配置时地址需要注意

bash 复制代码
#错误地址
https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

#可用地址(截止:2026-05-29)
https://mirrors.huaweicloud.com/jenkins/update-center.json

**2、考虑自建内网镜像站或使用代理缓存(如Nexus)(**这里就不演示了)
3、手动导入插件地址
虽然各种镜像源的自动更新站点不可用,但镜像仓库插件还可用,也可以通过手动导入相关插件到Jenkins,这个适合自己测试玩。如下插件


2.2 如果配置https镜像源时,提示ssl问题,可启用" 忽略签名验证 "

在docker环境下可以配置如下yaml文件:

bash 复制代码
version: '3.2'

services:
  web:
    image: 'jenkins/jenkins:lts-jdk21' 
    container_name: 'jenkins'
    restart: always
    environment:
      - JAVA_OPTS=-Dhudson.model.DownloadService.noSignatureCheck=true
    ports:
      - '8080:8080'
      - '50000:50000'
    volumes:
      - './jenkins_home:/var/jenkins_home'
      - '/var/run/docker.sock:/var/run/docker.sock'

2.3 更新低版本的jenkins

jenkins更新日新月异,迭代和更新的速度很快,为了保障系统的安全和稳定,我们经常需要更新到新的版本上去,但历史构建信息需要保持不受影像,这里有两种更新方法;
1、jdk不变的情况下,可以通过jenkins的war包进行更新

  • 停止 Jenkins 服务 ‌(如 systemctl stop jenkins),避免替换时文件被占用;
  • 备份当前 jenkins.war 和整个 JENKINS_HOME ‌(默认 /var/lib/jenkins),以防回滚;
  • 下载目标版本的官方 WAR 包 ‌(如 LTS 版从 https://www.jenkins.io/download/ 或镜像站获取);
  • 替换原 WAR 文件 ‌(路径通常为 /usr/lib/jenkins/jenkins.war 或 /usr/share/jenkins/jenkins.war,可通过 ps aux | grep jenkins 确认);
bash 复制代码
#备份
cp jenkins.war jenkins.war.back

#复制war包到jenkins文件夹下
mv /usr/jenkins.war /usr/share/jenkins

ps:如果是window环境下安装,直接替换 JENKINS_HOME‌下的war的文件夹即可;

  • 启动服务并验证 ‌(systemctl start jenkins,访问 Web 界面检查版本与插件兼容性)。‌‌
    2、跨Jdk多版本更新jenkins
    a、首先需要备份数据:
    1、配置文件 ‌:通常位于JENKINS_HOME目录。 2、**构建数据** ‌:存储在JENKINS_HOME/jobs目录。
    3、插件 ‌:可以通过Jenkins的插件管理界面导出插件列表。
    b、升级JDK,升级JDK本身并不直接影响Jenkins的数据,但确保新版本的JDK与旧版本兼容是很重要的。
  • 验证兼容性‌:查看Jenkins的官方文档,确认JDK 21是否兼容当前的Jenkins版本(例如,LTS版本或最新稳定版本)。
  • 环境准备‌:在升级之前,在非生产环境(如测试服务器)上安装JDK 21,并验证其与现有Jenkins设置的兼容性。
  • dokcer更新:直接下载最新的容器镜像,更新即可;
    c、更新jenkins, 在确认JDK兼容性后,更新Jenkins到支持JDK 21的版本。在window上需要确保 JAVA_HOME 和 PATH 环境变量指向新的JDK 21。在docker中替换最新镜像即可。
    d、恢复数据。在新安装的Jenkins实例上恢复之前备份的数据:
  • 配置文件 ‌:将备份的配置文件复制到新的$JENKINS_HOME目录。
  • 插件‌:通过插件管理界面重新安装或导入之前备份的插件列表。
  • 构建数据 ‌:将备份的构建数据文件夹复制到新的$JENKINS_HOME/jobs目录。
    通过以上步骤,你可以有效地从JDK 17升级到JDK 21,同时确保Jenkins的数据不丢失且系统稳定运行。
    注意:‌跨多个主版本升级可能存在插件或配置兼容风险 ‌,建议先在测试环境验证;官方不推荐直接替换用于生产环境的非 LTS 跨大版本,优先考虑包管理器(如 apt/yum)或容器化部署以简化升级与回滚。‌‌

2.4 docker内部访问授权问题

想要通过docker进行备份或操作容器内部文件异常时,可通过如下命令进入容器;

bash 复制代码
docker exec -it -u root jenkins /bin/bash

三、文章总结

现在网上遇到问题通过AI搜素进行处理,一些稍微复杂点的内容或则不常见的内容,他提供的内容有限,需要不断的提问,或则看一下它反馈的结果在进行验证。这次也是遇到问题后,AI帮助有限,因此记录一下错误处理过程。

相关推荐
IT界的老黄牛21 小时前
Jenkins 监控一条龙:接入、看板 9964、11 条告警规则直接抄走
jenkins·grafana·prometheus·监控·ci-cd·告警规则
SkyWalking中文站21 小时前
SkyWalking 11 与 BanyanDB 0.11:在存储引擎内部实现 Trace 尾部采样
运维·监控·自动化运维
姚不倒1 天前
etcd 学习系列(二):集群架构 —— 3 节点是如何工作的
运维·架构·etcd
pt10431 天前
网络自动化Python课程:Cisco PyATS网络自动化测试框架
运维·自动化
小袁拒绝摆烂1 天前
Jenkins部署经验
运维·jenkins
刚入门的大一新生1 天前
Linux-进程控制
linux·运维·服务器·c++
上火的金鱼妹1 天前
K8S基础组件作用和关系整理
linux·运维·服务器·kubernetes
Vcaker1 天前
Linux学习25-harbor私有仓库部署
linux·运维·学习
醉颜凉1 天前
网络安全必学:粘性MAC地址(Sticky MAC)原理与应用全解析
运维·服务器·网络·安全·web安全
不懂的浪漫1 天前
ToDesk 连接 Linux 后分辨率过低的解决方法
linux·运维·数据库