CentOS下Jenkins配置要注意什么
小樊
40
2025-11-24 02:15:23
CentOS 下 Jenkins 配置注意事项
一 基础环境与安装
- 选择与验证 Java:Jenkins 2.361+ 建议使用 Java 11 或 Java 17(LTS)。安装后执行
java -version 确认版本;如使用 OpenJDK 11/17,可通过 sudo yum install -y java-11-openjdk-devel 或 java-17-openjdk-devel 安装。避免使用过旧或非 LTS 版本以减少兼容与安全风险。
- 添加官方仓库并安装:导入 Jenkins 仓库 GPG 密钥 与 repo 文件,再执行
sudo yum install -y jenkins。完成后使用 sudo systemctl start jenkins && sudo systemctl enable jenkins 启动并设置开机自启。
- 首次访问与解锁:默认监听 8080 端口,访问
http://<服务器IP>:8080,初始管理员密码位于 /var/lib/jenkins/secrets/initialAdminPassword。
- 目录与日志:关键目录包括 /var/lib/jenkins(JENKINS_HOME)、/var/log/jenkins/jenkins.log(日志),排障优先查看该日志文件。
二 系统与网络配置
- 防火墙放行:仅开放必要端口,例如
sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload;如经反向代理或配合 http/https 服务,也可按需放行对应服务或端口。
- 端口与主机绑定:如需修改默认端口,编辑 /etc/sysconfig/jenkins 中的 JENKINS_PORT;如需仅本机访问,可设置 JENKINS_LISTEN_ADDRESS=127.0.0.1。修改后执行
sudo systemctl restart jenkins 生效。
- 反向代理与 HTTPS:生产环境建议前置 Nginx/Apache 终止 TLS,对外提供 443,内部 Jenkins 仍用 8080;自签名或内网 CA 证书均可,注意在代理层正确设置 X-Forwarded-For/X-Forwarded-Proto 等头,避免回环与重定向异常。
- SELinux:若启用 SELinux,遇到端口或文件权限问题时优先使用
semanage port/setsebool 等工具做最小权限放行,避免直接 setenforce 0 关闭保护。
三 安全加固要点
- 运行用户与最小权限:默认以 jenkins 用户运行,保持最小权限原则;仅在确有必要时才考虑改为其他用户,并同步校正 /var/lib/jenkins、/var/log/jenkins 等目录属主属组与权限。
- 强认证与授权:首次进入向导后立即设置 强管理员密码,启用 基于角色的访问控制(RBAC),细化项目/视图/代理的权限,避免共享账号。
- 凭据与密钥管理:使用 Credentials 插件集中管理 SSH 私钥、API Token、数据库密码 等,禁止明文写在 Job 配置或脚本中。
- 网络安全:限制 JNLP/代理端口 暴露面,仅在内网开放;对外仅暴露 8080/443,并配合 fail2ban 或系统防火墙做暴力登录防护。
- 安全更新:保持 Jenkins 核心与插件 及时更新,关注 安全公告;减少非必要插件以降低攻击面。
四 性能与维护
- JVM 与资源:根据节点资源设置堆大小,例如在 /etc/sysconfig/jenkins 的 JAVA_ARGS 中配置
-Xms 与 -Xmx(如 -Xms2g -Xmx2g),避免频繁 Full GC;为 /var/lib/jenkins 挂载 SSD/NVMe 提升 I/O。
- 构建并发与清理:合理设置 并发构建数 与 执行器数量,定期清理 工作空间/构建历史/旧日志,防止磁盘被占满。
- 监控与告警:启用 监控插件(如 JavaMelody)并结合 Prometheus/Grafana 做可视化;对 构建失败、节点离线、磁盘空间阈值 配置告警。
- 日志轮转:为 /var/log/jenkins/jenkins.log 配置 logrotate,避免日志无限增长导致磁盘耗尽。
五 常见坑与排查
- Java 路径与版本不匹配:若启动失败,检查 /usr/lib/systemd/system/jenkins.service 或 /etc/sysconfig/jenkins 中的 JAVA_HOME/JENKINS_JAVA_CMD 是否指向有效的 java;必要时在 systemd 服务中显式设置
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk"。
- 端口冲突:与 Tomcat/其他服务 冲突时,修改 JENKINS_PORT 并重启;确认
firewall-cmd 已放行新端口。
- 权限问题:若以 jenkins 用户执行构建时访问 Git/SSH/Docker 失败,确保该用户对相应目录与 SSH 私钥 有读权限,或使用 凭据 托管密钥。
- 插件与更新:插件冲突是常见不稳定因素,更新前先备份 JENKINS_HOME,分批更新并回滚有问题的插件。
- 首次解锁失败:确认 /var/lib/jenkins/secrets/initialAdminPassword 可读,且 Jenkins 服务已启动;若文件为空或权限异常,检查磁盘空间与目录权限。