简介:这份资源是面向 Jenkins 2.319.1 版本整理的全套插件压缩包,主要服务于正在搭建或维护 CI/CD 流水线的运维工程师、测试人员与后端开发者。对于内网离线环境或插件下载受限的场景,它能一次性补齐 Jenkins 所需的核心插件,省去逐个在线检索与版本匹配的麻烦,降低因插件缺失导致构建失败的概率。压缩包为 zip 格式,整体约 264.81MB,内含插件文件,覆盖持续集成、自动化部署、源码管理、构建触发与通知等常见能力模块,可直接放入插件目录完成批量安装。目前已有 940 人学习下载,说明该版本组合在社区中具备一定参考价值。借助这份插件集合,读者能够快速完成 Jenkins 基础能力配置,减少环境搭建阶段的试错成本,把精力集中到流水线设计与自动化部署实践上,适合需要稳定复现构建环境的中高级使用者。
1. 从一次插件不兼容的翻车说起:Jenkins 2.319.1 环境搭建
上周帮一个朋友排查 CI 流水线,页面报了一堆NoSuchMethodError,日志翻到最底下才发现是插件版本和 Jenkins 核心对不上。他装的是最新版 Jenkins,插件却从旧环境直接拷过来,结果整个构建队列卡死,连登录都进不去。这种翻车在 Jenkins 2.319.1 上尤其常见——这个版本属于 LTS 分支里比较稳的一档,很多公司内网还在跑,但插件生态更新快,稍不注意就踩版本坑。如果你正准备搭一套 Jenkins 自动化部署环境,或者手头有台老机器要重装,这篇笔记就是按「装什么版本、怎么装、怎么配、坏了怎么救」的顺序整理的。整套流程我在测试机上走过三遍,下面每一步都带命令和参数说明,照着做能跑通。
2. 装前定版本:Jenkins 2.319.1 与 JDK 的搭配选择
2.1 为什么锁死 2.319.1 而不是追新
Jenkins 每周发版,但生产环境我一般只跟 LTS。2.319.1 是 LTS 线里一个长期被验证过的版本,配套插件生态成熟,社区里能搜到的报错方案也多。追最新版看着爽,但插件作者适配往往滞后两三周,中间这段时间流水线就是黑匣子。另一个现实原因是:很多公司内网镜像源只同步到某个 LTS 版本,你装最新版反而拉不到依赖。所以第一步不是急着下载,而是先确认目标机器上有没有 JDK,以及 JDK 版本能不能撑住 2.319.1。
2.2 JDK 版本对照与安装
Jenkins 2.319.1 官方要求 JDK 8 或 JDK 11,JDK 17 在这个版本上跑会出UnsupportedClassVersionError。我一般选 JDK 11,因为 8 太老、17 太新,11 是中间最稳的。下面以 CentOS 7 为例装 OpenJDK 11:
# 查看系统是否已有 JDK java -version # 安装 OpenJDK 11(CentOS 7 默认源里可能没有,先装 EPEL) yum install -y epel-release yum install -y java-11-openjdk java-11-openjdk-devel # 确认安装路径,后面配 Jenkins 要用 readlink -f $(which java)java-11-openjdk是运行时,java-11-openjdk-devel带编译工具,Jenkins 本身不需要编译,但有些插件在构建时会调javac,所以一起装上省事。readlink -f那行是查真实路径,输出类似/usr/lib/jvm/java-11-openjdk-11.0.xx/bin/java,记下/usr/lib/jvm/java-11-openjdk-11.0.xx这一段,后面写进 Jenkins 的启动配置。
提示:如果机器上已经有 JDK 8,不用卸载,用
alternatives --config java切换默认版本即可,Jenkins 启动脚本里也可以单独指定JAVA_HOME。
2.3 系统资源与端口预检
Jenkins 默认跑在 8080 端口,内存建议至少 2GB,低于这个数构建大项目时容易 OOM。装之前先看两样东西:
# 看内存 free -h # 看 8080 是否被占用 ss -tlnp | grep 8080如果 8080 被占,要么改 Jenkins 端口,要么把占用进程挪走。改端口在启动参数里加--httpPort=9090就行,后面第 3 章会写具体位置。内存这块,free -h里 available 低于 1.5G 的话,建议先加内存或者把 Jenkins 的 JVM 堆调小,堆参数在/etc/sysconfig/jenkins里改。
3. 安装 Jenkins 2.319.1:仓库配置与 war 包两种方式
3.1 用 yum 仓库安装(推荐)
官方仓库方式最省心,升级和卸载都干净。先导入密钥、加仓库文件:
# 导入 Jenkins 仓库 GPG 密钥 wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key # 查看仓库里有哪些版本 yum list jenkins --showduplicates | grep 2.319--showduplicates会列出所有可用版本,找到jenkins-2.319.1-1.1这种格式的条目。然后指定版本安装:
yum install -y jenkins-2.319.1-1.1.noarch装完 systemd 会注册一个jenkins服务,但先别急着启动,还要改配置。配置文件在/etc/sysconfig/jenkins,用编辑器打开,重点改三处:
# 监听端口,默认 8080,被占就改 JENKINS_PORT="8080" # Java 路径,指向前面查到的 JDK 11 JENKINS_JAVA_CMD="/usr/lib/jvm/java-11-openjdk-11.0.xx/bin/java" # JVM 堆参数,2G 内存机器给 512m 起步 JENKINS_JAVA_OPTS="-Djava.awt.headless=true -Xmx512m -Xms256m"JENKINS_JAVA_CMD不写的话,Jenkins 会去调系统默认java,如果默认是 JDK 8 也能跑,但为了和插件兼容性一致,我一般显式指到 11。-Xmx512m是最大堆,-Xms256m是初始堆,小内存机器别设太大,否则启动就报Cannot allocate memory。
3.2 war 包方式安装(适合离线环境)
内网机器连不上外网仓库时,war 包是唯一选择。从能上网的机器下载jenkins.war,版本号认准 2.319.1:
# 在能上网的机器上下载 wget https://get.jenkins.io/war-stable/2.319.1/jenkins.war # 传到目标机器后,直接 java -jar 启动 nohup java -jar jenkins.war --httpPort=8080 > jenkins.log 2>&1 &--httpPort指定端口,nohup加&让它在后台跑,日志重定向到jenkins.log。这种方式没有 systemd 管理,重启机器后要手动再拉起来,所以生产环境我还是倾向 yum 装。war 包方式的好处是版本绝对可控,不会因为仓库更新被意外升级。
3.3 启动服务与初始密码获取
yum 方式装完后启动:
systemctl start jenkins systemctl enable jenkins systemctl status jenkinsenable是设开机自启,status看运行状态,绿色active (running)就对了。如果起不来,先看/var/log/jenkins/jenkins.log,九成是 JDK 路径写错或者端口被占。启动成功后,初始管理员密码在:
cat /var/lib/jenkins/secrets/initialAdminPassword这串密码在浏览器首次访问http://机器IP:8080时输入。注意这个文件只有 Jenkins 首次启动前存在,装完插件后会被清掉,所以拿到密码先存到密码管理器里。
4. 插件配置:适配 2.319.1 的核心插件清单与安装
4.1 插件管理入口与离线安装
浏览器进 Jenkins 后,先选「安装推荐的插件」,这一步会拉一批基础插件。但推荐列表里的版本不一定适配 2.319.1,所以装完还要手动核对。插件管理在「系统管理 → 插件管理 → 可选插件」,搜索框输入插件名即可。离线环境用「高级 → 上传插件」,把.hpi文件传上去。
插件版本适配有个笨办法但很管用:去插件官网看每个插件的「Required Core」字段,只要它写的核心版本 ≤ 2.319.1,就能装。反过来,如果某个插件要求核心 2.400+,在 2.319.1 上装了一定报错。
4.2 自动化部署必备插件清单
下面这张表是我在 2.319.1 上跑自动化部署时必装的插件,版本号是实测能兼容的:
| 插件名称 | 作用 | 兼容版本 |
|---|---|---|
| Git plugin | 拉取 Git 仓库代码 | 4.11.5 |
| Pipeline | 流水线核心 | 2.6 |
| Credentials Binding | 凭据绑定到环境变量 | 1.28 |
| SSH Agent | 通过 SSH 部署到远程 | 1.24 |
| Publish Over SSH | 文件传输到远程 | 1.24 |
| Build Timestamp | 构建时间戳 | 1.11 |
装的时候在可选插件里逐个搜,勾选后点「Install without restart」。如果一次装太多,Jenkins 可能卡在「正在安装」,这时候刷新页面看进度,别重复点。
4.3 插件安装后的重启与验证
装完插件后,Jenkins 会提示重启。重启命令:
systemctl restart jenkins重启后进「插件管理 → 已安装」,看有没有插件标红报错。标红一般是依赖缺失,点插件名进去看详情,它会告诉你缺哪个依赖,按提示补装即可。另一个验证方法是新建一个自由风格任务,在「源码管理」里看能不能选到 Git,能选到说明 Git 插件生效了。
注意:插件装多了会拖慢 Jenkins 启动速度,2.319.1 上我一般控制在 20 个以内,用不到的插件及时卸载,卸载在「已安装」标签页里点插件名旁边的「Uninstall」。
5. 避坑排查:Jenkins 2.319.1 装插件时最容易踩的五个坑
5.1 坑一:插件装完 Jenkins 起不来
现象:重启后systemctl status jenkins显示failed,日志里一堆ClassNotFoundException。
原因:插件依赖的核心类在 2.319.1 里不存在,通常是装了要求更高核心版本的插件。
解决:进/var/lib/jenkins/plugins目录,把最近装的插件目录删掉,重启服务。然后按 4.1 的方法核对 Required Core 字段,只装兼容版本。
5.2 坑二:初始密码文件不存在
现象:cat /var/lib/jenkins/secrets/initialAdminPassword报No such file。
原因:Jenkins 已经完成过初始化,这个文件被自动删除了;或者 Jenkins 根本没启动成功,文件还没生成。
解决:先确认服务在跑,如果服务正常但文件没了,说明之前初始化过。这时候要么用之前设的管理员账号登录,要么停掉 Jenkins,删掉/var/lib/jenkins下除jobs外的配置重新初始化——但这样会丢配置,操作前先备份。
5.3 坑三:插件下载卡在 0%
现象:插件安装进度条一直不动,日志里Connection timed out。
原因:默认插件更新中心地址在国内访问不稳定。
解决:进「系统管理 → 插件管理 → 高级」,把「更新站点」的 URL 换成国内镜像源。改完点「立即获取」,再回可选插件页搜索安装。离线环境就直接用上传.hpi的方式。
5.4 坑四:JDK 版本对但插件仍报错
现象:java -version显示 11,但插件日志里报UnsupportedClassVersionError。
原因:Jenkins 启动时用的不是系统默认java,而是/etc/sysconfig/jenkins里JENKINS_JAVA_CMD指定的那个,可能指向了 JDK 8。
解决:打开/etc/sysconfig/jenkins,确认JENKINS_JAVA_CMD指向 JDK 11 的绝对路径,改完systemctl daemon-reload再重启。
5.5 坑五:内存不足导致构建中断
现象:构建跑到一半突然失败,日志里java.lang.OutOfMemoryError。
原因:JVM 堆设太小,或者机器物理内存不够。
解决:调大/etc/sysconfig/jenkins里的JENKINS_JAVA_OPTS,把-Xmx提到 1024m 或 2048m,同时用free -h确认物理内存够用。如果物理内存实在紧张,把构建任务分散到 agent 节点上跑。
6. 装完怎么验证:从新建任务到流水线跑通
装完插件只是第一步,真正要确认的是整套自动化部署链路能不能跑通。我一般用一个最小化的流水线任务来验证,步骤是:新建任务 → 写 Pipeline 脚本 → 执行 → 看日志。下面这个脚本覆盖了拉代码、构建、SSH 部署三个关键环节:
pipeline { agent any stages { stage('拉取代码') { steps { git branch: 'main', url: 'git@内网Git地址:group/demo.git', credentialsId: 'git-ssh-key' } } stage('构建') { steps { sh 'echo "模拟构建,实际替换成 mvn 或 npm 命令"' } } stage('部署到远程') { steps { sshagent(credentials: ['deploy-server-key']) { sh ''' ssh -o StrictHostKeyChecking=no user@目标机器 "mkdir -p /opt/app && echo 部署成功" ''' } } } } }credentialsId对应的是在「凭据管理」里提前加好的 SSH 私钥,sshagent会把私钥注入到当前步骤的环境里,StrictHostKeyChecking=no是跳过首次连接的指纹确认,内网环境用这个参数省事。跑通后,控制台输出里会依次出现三个阶段的名字,最后一行打印「部署成功」。
验证时重点看三处:一是「拉取代码」阶段有没有报权限错误,报错就去检查凭据里的私钥和 Git 仓库的公钥是否配对;二是「构建」阶段的工作目录,Jenkins 默认在/var/lib/jenkins/workspace/任务名下,确认这个目录有写权限;三是「部署到远程」阶段的 SSH 连接,如果卡住不动,多半是目标机器的防火墙没放行 22 端口。
从那以后我每次装完 Jenkins,都强制走一遍这个最小流水线,不跑通不算装完。因为插件装得再全,链路不通就是白搭。希望帮到你。
本文还有配套的精品资源,点击获取