CentOS 上部署 Jenkins 的步骤详解
一 环境准备与版本选择
- 操作系统建议:CentOS 7/8/Stream(本文以 systemd 为主,命令需具备 sudo 权限)。
- Java 版本:当前 Jenkins LTS 要求 Java 11 或 17(推荐 OpenJDK 11/17)。如需使用 Java 8,请选择较老的 Jenkins 版本,但不建议用于生产。
- 端口规划:默认 8080/TCP(Web 访问),50000/TCP(Agent/JNLP 连接,分布式构建时使用)。
二 安装 Java
- 安装 OpenJDK(推荐 11 或 17):
- 安装 OpenJDK 11(CentOS 7/8/Stream 通用):
- sudo yum install -y java-11-openjdk-devel
- 验证版本:
- java -version
- javac -version
- 如需使用 Java 17(若仓库提供对应包):
- sudo yum install -y java-17-openjdk-devel
- 说明:Jenkins 2.357+ 及后续 LTS 主线已转向 Java 11/17,请优先选择这两个版本以获得更好的兼容性与安全更新。
三 安装 Jenkins(YUM 仓库方式,推荐)
- 导入官方 GPG 密钥并添加仓库:
- sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
- sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
- 安装 Jenkins:
- sudo yum install -y jenkins
- 说明:仓库方式便于后续通过 yum 升级维护。
四 启动与防火墙配置
- 启动与开机自启(systemd):
- sudo systemctl daemon-reload
- sudo systemctl start jenkins
- sudo systemctl enable jenkins
- sudo systemctl status jenkins
- 防火墙放行端口(默认 8080;如需 Agent 通信,放行 50000):
- sudo firewall-cmd --permanent --add-port=8080/tcp
- sudo firewall-cmd --permanent --add-port=50000/tcp
- sudo firewall-cmd --reload
- 云服务器注意:除系统防火墙外,还需在云安全组/ACL中放行对应端口。
五 初始化与插件安装
- 获取初始管理员密码:
- sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 访问 Web 界面:打开浏览器访问 http://服务器IP:8080,粘贴上述密码进入向导。
- 插件安装建议:
- 选择安装推荐插件(国内网络可后续更换为国内镜像源以加速)。
- 常用核心插件(按需):Git plugin、Git client plugin、GitHub plugin、Maven Integration plugin、NodeJS plugin、Docker Pipeline、Publish Over SSH。
- 创建管理员用户并完成实例配置,进入 Jenkins 首页。
六 常见问题与优化
- Java 版本不匹配导致无法启动:
- 现象:systemctl status jenkins 报 “Java not found” 或启动失败。
- 处理:确认已安装 Java 11/17;如需指定特定 Java,可在 /etc/sysconfig/jenkins 中设置 JENKINS_JAVA_CMD,或创建软链接(如 ln -s /usr/bin/java /usr/bin/java)后重启服务。
- 插件下载慢或失败:
- 在 系统管理 → 插件管理 → 高级 将更新站点更换为国内镜像(如清华源),或编辑 hudson.model.UpdateCenter.xml 的更新中心 URL 后重启 Jenkins。
- 构建资源与并发:
- 在 系统配置 中合理设置执行者数量、SCM 重试次数、静默期与全局环境变量,以提升稳定性与效率。
- 安全与网络:
- 生产环境建议启用 HTTPS(如 8443/TCP)、限制管理端口访问来源、定期备份 JENKINS_HOME(默认 /var/lib/jenkins)。