Jenkins 部署依赖项清单

准备部署 Jenkins?别急着动手。一份清晰的依赖项清单,能帮你避开不少“坑”。下面这份清单,涵盖了从核心运行到离线环境的方方面面,咱们按图索骥,逐一核对。
一 核心运行依赖
这是 Jenkins 能“跑起来”的基石,缺一不可。
- Ja va 运行时:这是 Jenkins 的“心脏”。当前推荐使用 JDK 17 或 JDK 21(新版本 Jenkins 建议 JDK 17+;部分老版本仍兼容 Ja va 11)。安装后,务必正确设置
JA VA_HOME与PATH环境变量,这是很多启动失败的根源。 - Jenkins 程序包:获取方式很灵活:
- 传统方式:直接下载
jenkins.war包,用ja va -jar jenkins.war命令启动。 - 系统包管理:在 Debian/Ubuntu 或 RHEL/CentOS 等系统上,使用官方仓库安装,管理起来更方便。
- 容器化:直接拉取官方
jenkins/jenkins:ltsDocker 镜像运行,环境最干净。
- 传统方式:直接下载
- Servlet 容器(可选):Jenkins 自带 Jetty 服务器,开箱即用。当然,你也可以将其部署到 Apache Tomcat 或 GlassFish 等外部容器中。
- 操作系统与硬件:主流系统都支持,包括 Linux(如 Ubuntu 18.04+、CentOS 7+、RHEL 7+)、Windows 10+ 和 macOS 10.14+。硬件方面,起步建议至少 2 核 CPU、4GB 内存和 50GB 存储空间。如果是生产环境,这个配置还得往上提。
二 构建与代码拉取工具
光能运行还不够,Jenkins 的核心任务是构建。这就得为它准备好“工具链”。
- Git:源码拉取的基础。确保 Git 可执行文件在系统的
PATH环境变量中,让 Jenkins 能找到它。 - 构建工具:根据项目技术栈来定。
- Ja va 项目常用 Ma ven(推荐 3.8.x 及以上版本)或 Gradle。
- 关键一步:记得在 Jenkins 管理后台的“全局工具配置”里,显式地配置好 JDK、Git、Ma ven 等工具的安装路径,别让 Jenkins 去猜。
- 语言与运行环境(按项目):这就是“看菜吃饭”了。比如前端或 Node.js 项目需要 Node.js,做自动化脚本或测试可能需要 Python,.NET 项目则离不开 .NET SDK。提前在目标机器或袋里节点上装好。
三 网络与端口依赖
网络不通,一切白搭。这些端口必须畅通。
- 访问端口:
8080/tcp:这是 Web 管理界面的默认入口。50000/tcp:用于主节点与 Agent(袋里节点)之间的 JNLP 通信。
- 防火墙放行示例(以常见 Linux 发行版为例):
- Ubuntu/Debian:执行
sudo ufw allow 8080,50000/tcp。 - CentOS/RHEL:执行
sudo firewall-cmd --permanent --add-port={8080,50000}/tcp && sudo firewall-cmd --reload。
- Ubuntu/Debian:执行
- 可选端口:如果启用 HTTPS,会用到
8443/tcp;如果涉及 SSH 连接,则需要22/tcp。
四 权限与安全依赖
权限和安全,是 Jenkins 稳定运行的“安全带”。
- Linux 权限:如果 Jenkins 需要执行 Docker 命令或某些需要高权限的部署操作,通常需要为运行 Jenkins 的用户(如
jenkins)配置sudo免密。这需要在/etc/sudoers文件中谨慎配置NOPASSWD规则。 - 凭据与插件:
- 必备插件:像 Credentials Binding(凭据绑定)、Git、Ma ven Integration、SSH 等,几乎是标配。
- 权限策略插件:如 Role-Based Authorization Strategy(基于角色的授权策略),用于精细化管理用户权限。
- 特别注意:插件之间常有强依赖关系,安装时会自动拉取依赖,务必确保网络畅通,并关注版本兼容性。
- 安全加固:对于生产环境,强烈建议启用 HTTPS、禁用匿名访问,并定期备份
JENKINS_HOME目录(这里存放了所有配置和构建历史)。
五 离线环境补充依赖
在内网或隔离环境中部署,准备工作得做足,把所有“零件”都备齐。
- 离线安装介质:提前下载好
jenkins.war、JDK 安装包、Ma ven 二进制包、Git 源码或二进制包等所有安装文件。 - 构建工具链:在目标机器上离线安装 Ma ven、Git 等工具及其所有系统级依赖(例如,编译安装 Git 可能需要 gcc 等开发工具链)。
- 字体库(无头环境):在无图形界面的服务器(Headless Server)上,有时会遇到 “Fontconfig head is null” 这类 AWT/字体错误。解决办法是安装
fontconfig包,或将所需的字体文件手动拷贝到 JDK 的lib/fonts目录下。 - 插件离线安装:这是离线部署中最繁琐的一环。
- 方法一:将所需插件及其所有依赖的
.jpi或.hpi文件,按正确结构放入 Jenkins 的plugins/目录。 - 方法二:先在另一台联网的机器上安装好同版本的 Jenkins 和所有插件,然后将整个
~/.jenkins/plugins目录打包,拷贝到离线环境。 - 无论哪种方法,都要格外注意插件版本间的匹配和依赖安装顺序。
- 方法一:将所需插件及其所有依赖的
对照这份清单,把依赖项一个个落实,你的 Jenkins 部署之路就会顺畅很多。说到底,准备工作越细致,后续的麻烦就越少。
