CentOS 上部署 Jenkins 的常见问题与排查路径
一 环境准备与版本兼容
- 确认已安装受支持的 Java:建议 OpenJDK 11 或更高版本;如使用 Java 8,需确认与所用 Jenkins 版本兼容。执行
java -version 检查版本。若版本不匹配,安装合适版本并在 Jenkins 配置中指定 JAVA_HOME 或 JENKINS_JAVA_CMD。
- 安装与启动:添加 Jenkins 官方仓库后
yum install jenkins -y,随后 systemctl start jenkins && systemctl enable jenkins。
- 首次访问与解锁:浏览器打开 http://服务器IP:8080,解锁密码位于 /var/lib/jenkins/secrets/initialAdminPassword。
- 防火墙放行:使用
firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload 开放端口。
二 服务无法启动与端口冲突
- 快速检查:
- 服务状态:
systemctl status jenkins
- 端口占用:
ss -tulnp | grep 8080 或 netstat -tulnp | grep 8080
- 日志定位:
journalctl -u jenkins -n 50 --no-pager 或 tail -n 50 /var/log/jenkins/jenkins.log
- 处理步骤:
- 端口被占用时,停止占用进程或修改 /etc/sysconfig/jenkins 中的 JENKINS_PORT,然后
systemctl restart jenkins。
- 配置变更或 unit 文件调整后执行
systemctl daemon-reload 再重启。
- 直接以 WAR 包验证:
java -jar jenkins.war --httpPort=8080(排除系统服务配置干扰)。
三 访问异常与反向代理配置
- 访问不到或 404:
- 确认服务已启动、端口正确、访问 URL 与 JENKINS_PREFIX 一致。
- 检查 Nginx/Apache 反向代理配置是否正确(如 proxy_pass、Host 头、URI 前缀)。
- 被防火墙或 SELinux 拦截:
- 放行端口:
firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload。
- 如启用 SELinux,排查是否限制端口或目录访问(必要时调整策略或临时设为宽容模式验证)。
四 插件更新与安装失败
- 更新站点超时或速度慢:在 Manage Jenkins → Manage Plugins → Advanced 将 Update Site 替换为国内镜像,例如 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,然后重启 Jenkins。
- 插件不兼容导致启动失败:先禁用所有插件、重启,再逐个启用定位问题;或升级 Jenkins 至兼容版本后重装插件。
- 网络连通性:确保服务器可访问外网或镜像源,必要时配置代理。
五 权限目录与 Java 路径问题
- 目录权限:Jenkins 运行用户对 /var/lib/jenkins /var/cache/jenkins /var/log/jenkins 需具备读写权限,必要时执行:
chown -R jenkins:jenkins /var/lib/jenkins /var/cache/jenkins /var/log/jenkins。
- Java 路径错误:编辑 /etc/sysconfig/jenkins,设置
JENKINS_JAVA_CMD="/usr/bin/java"(路径以 which java 为准),或正确配置 JAVA_HOME。
- 不建议直接改为 root 运行(存在安全风险);如为排障临时使用,请完成后恢复为 jenkins 用户并校正权限。