centos jenkins部署最佳实践
小樊
43
2025-11-28 01:28:11
CentOS 上部署 Jenkins 的最佳实践
一 环境与安装
- 更新系统与依赖:执行
sudo yum update -y,安装 OpenJDK 11(推荐)与基础工具:sudo yum install -y wget java-11-openjdk-devel。
- 添加官方仓库并导入 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
- 安装并启动服务:
sudo yum install -y jenkins,随后 sudo systemctl start jenkins && sudo systemctl enable jenkins。
- 访问与初始化:浏览器打开 http://<服务器IP>:8080,使用文件 /var/lib/jenkins/secrets/initialAdminPassword 中的初始密码完成解锁与首次配置。
二 网络与端口
- 防火墙放行:仅开放必要端口,例如 8080(HTTP)或 443(HTTPS)。示例:
- HTTP:
sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
- 或放行服务:
sudo firewall-cmd --permanent --add-service=http --permanent --add-service=https && sudo firewall-cmd --reload
- 反向代理与端口规划:生产环境建议使用 Nginx/Apache 做反向代理,将 80/443 暴露给外部,Jenkins 维持 8080 仅本地监听,便于统一证书管理与安全策略实施。
- 端口变更:如需修改默认端口,编辑 /etc/sysconfig/jenkins 中的 JENKINS_PORT 并重启服务。
三 安全加固
- 启用认证与授权:在“安全配置”中启用安全,选择安全域(如 Jenkins 专有用户数据库),授权策略采用 基于矩阵或项目矩阵,遵循最小权限原则。
- 防护与协议:启用 CSRF 保护;禁用未使用的 JNLP 代理 TCP 端口;强制使用 HTTPS(配置反向代理或内置 HTTPS)。
- 运行身份:不建议以 root 运行 Jenkins,保持 jenkins 系统用户;如需变更运行用户,编辑 /etc/sysconfig/jenkins 的 JENKINS_USER(变更前确保目录权限正确)。
- 系统与审计:限制 su 使用、设置 root TMOUT、禁用 Ctrl-Alt-Delete 重启、加固 /etc/passwd /etc/shadow 等敏感文件属性;启用 监控与日志审计,定期审查安全设置与插件更新。
四 性能与高可用
- JVM 调优:编辑 /etc/sysconfig/jenkins 的 JENKINS_JAVA_OPTIONS,示例:
-Djava.awt.headless=true -Xms1024m -Xmx1024m -XX:MaxNewSize=1024m(按内存与负载调整)。
- 构建效率:在 Pipeline 中使用并行步骤;减少插件数量以降低内存占用;定期清理旧构建与日志释放磁盘。
- 扩展能力:引入 Jenkins Agent/Slave 或 Kubernetes 动态代理实现分布式构建;必要时升级硬件(内存、SSD、CPU)。
五 维护与备份
- 更新与补丁:定期执行
sudo yum update jenkins -y 与插件更新,及时修复安全漏洞。
- 日志与监控:持续查看 /var/log/jenkins/jenkins.log,结合监控插件或外部工具设置告警。
- 备份策略:定期备份 $JENKINS_HOME(如 /var/lib/jenkins),包含 jobs、config.xml、credentials.xml、plugins 等;可使用脚本与 cron 实现自动化备份与保留策略。