centos部署jenkins的要点
小樊
45
2025-12-01 23:38:42
CentOS 部署 Jenkins 要点
一 环境与仓库准备
- 更新系统并安装 Java:建议 OpenJDK 11 或 17(Jenkins 2.357+ 要求 Java 11+)。示例:
sudo yum install -y java-11-openjdk-devel 或 sudo dnf install -y java-17-openjdk-devel,完成后执行 java -version 验证。
- 添加 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-2023.key
- 安装 Jenkins:
sudo yum install -y jenkins(或 sudo dnf install -y jenkins)。
二 服务配置与启动
- 启动与开机自启:
sudo systemctl daemon-reload && sudo systemctl start jenkins && sudo systemctl enable jenkins。
- 配置文件与目录:主配置在 /etc/sysconfig/jenkins(可设置 JENKINS_PORT、JENKINS_HOME 等);常用目录包括 /usr/lib/jenkins(安装目录)、/var/lib/jenkins(JENKINS_HOME)、/var/log/jenkins/jenkins.log(日志)。
- 端口与防火墙:默认端口 8080。开放访问示例:
sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload;如使用 HTTP 服务名也可 sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload。
- 首次解锁:查看初始管理员密码
sudo cat /var/lib/jenkins/secrets/initialAdminPassword,在浏览器访问 http://<服务器IP>:8080 完成解锁与初始化。
三 安全加固与访问控制
- 运行用户与权限:默认以 jenkins 用户运行,建议保持最小权限原则,谨慎改为 root。若需排查切换问题,检查 /etc/passwd 中 jenkins 用户的 shell 是否为 /bin/bash。
- 启用 HTTPS:为传输加密,配置反向代理(如 Nginx/Apache)或在前端负载均衡启用 TLS,证书可使用 Let’s Encrypt。
- 防火墙最小化:仅开放 8080/443/80 等必要端口,避免使用
firewall-cmd --stop 粗暴关闭防火墙。
- 安全基线:完成初始化后立即设置强密码策略、启用 CSRF 保护、限制代理/节点来源、按需启用审计日志。
四 性能与维护优化
- JVM 与资源:根据节点规格设置堆大小(如在 systemd 服务或启动参数中配置 -Xms/-Xmx),建议至少 4 核 CPU、8GB 内存、SSD 存储 作为起步配置。
- 构建环境:在 “全局工具配置” 正确设置 JAVA_HOME(可通过
readlink -f $(which java) 追溯实际路径),并按需配置 Maven/Git/Docker 等工具。
- 插件与更新:优先安装推荐插件,定期更新 Jenkins 与插件;移除未使用插件,减少攻击面与内存占用。
- 日志与监控:关注 /var/log/jenkins/jenkins.log,必要时接入 Prometheus + Grafana 或 JavaMelody 做性能与可用性监控。
- 构建与存储:定期清理旧构建与工作空间,避免 磁盘 I/O 与空间瓶颈;并发构建数与队列长度按资源合理限流。
五 常见排错清单
- 端口占用或访问不通:确认
systemctl status jenkins 运行正常,检查 firewall-cmd --list-ports 与云安全组是否放行 8080。
- 无法切换到 jenkins 用户:检查 /etc/passwd 中 jenkins 的 shell 是否为 /bin/bash,必要时修正后再执行
su - jenkins。
- 插件下载慢或失败:配置国内镜像源加速插件安装。
- 构建失败与权限问题:确认工作空间与工具链(JDK/Maven/Git)权限正确,必要时在代理/节点上预装与免密配置。
- 初始化卡住:再次查看 /var/lib/jenkins/secrets/initialAdminPassword 是否正确,或检查 /var/log/jenkins/jenkins.log 报错详情。