jenkins在centos上的最佳部署方式
小樊
37
2025-12-15 18:35:04
部署选型与总体建议
- 在 CentOS 7/8 上,生产环境优先采用 系统包管理器安装(YUM)+ systemd 管理 的方式,稳定、易维护、便于与系统安全策略集成。
- 需要更高环境一致性与快速迁移时,采用 Docker 容器化 部署,注意挂载 JENKINS_HOME 与按需挂载 /var/run/docker.sock 以在容器内构建镜像/执行 Docker 命令。
- 面向多团队与大规模构建负载,使用 Master–Agent 分布式架构,将构建任务下沉到 Agent,Master 专注调度与治理。
方式一 系统包管理器安装 YUM 稳定版
- 准备环境
- 更新系统并安装 Java 11/17(推荐 OpenJDK 11 或 JDK 17 LTS):
- sudo yum update -y
- sudo yum install -y java-11-openjdk-devel # 或 java-17-openjdk-devel
- 安装 Jenkins
- 添加官方仓库并导入 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 enable --now jenkins
- 访问与初始化
- 开放防火墙端口(示例为 8080):
- sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
- 获取初始管理员密码:
- sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 浏览器访问 http://<服务器IP>:8080,按向导安装推荐插件并创建管理员账户。
- 关键配置与目录
- 主配置:/etc/sysconfig/jenkins(可设置 JENKINS_PORT、JENKINS_HOME、JENKINS_USER 等)
- 数据与日志:/var/lib/jenkins(JENKINS_HOME)、/var/log/jenkins/jenkins.log
- 服务单元:/usr/lib/systemd/system/jenkins.service(如需自定义 JAVA_HOME/JAVA_OPTS,可在单元文件或 sysconfig 中设置)
方式二 Docker 容器化部署
- 安装 Docker 并启动:
- curl -fsSL https://get.docker.com | sh
- sudo systemctl enable --now docker
- 运行 Jenkins(示例)
- docker run -d
–name jenkins
-p 8080:8080
-p 50000:50000
-v jenkins-data:/var/jenkins_home
-v /var/run/docker.sock:/var/run/docker.sock
-e JAVA_OPTS=“-Duser.timezone=Asia/Shanghai -Xmx2g -Xms512m”
jenkins/jenkins:lts
- 初始化
- 查看初始化密码:
- docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
- 访问 http://<服务器IP>:8080 完成安装向导。
- 说明
- 挂载 /var/run/docker.sock 可在容器内使用宿主机的 Docker 守护进程;如需在容器内构建镜像,请评估安全风险并尽量以 非 root 用户运行容器。
安全与运维加固要点
- 最小权限与运行账户
- 不建议将 JENKINS_USER 改为 root;保持 jenkins 系统用户,按需通过 sudo 授权特定命令与目录。
- 网络安全
- 仅开放必要端口(如 8080),生产建议使用 反向代理(Nginx/HAProxy)+ TLS;避免直接暴露 8080 到公网。
- 系统与 JVM 调优
- 在 /etc/sysconfig/jenkins 或 systemd 单元中设置 JAVA_OPTS(如 -Xmx/-Xms、时区),并限制并发构建数、合理设置工作空间与构建日志保留策略。
- 插件与更新
- 优先安装 推荐插件,定期更新 Jenkins 与插件 获取安全修复;变更前做好备份与回滚方案。
- 备份与恢复
- 定期备份 $JENKINS_HOME(含 jobs、config.xml、credentials.xml、plugins 等),可结合脚本与 cron 实现自动化备份与校验。
规模化与高可用建议
- Master–Agent 分布式构建
- 在 Master 上添加 Agent 节点(SSH 或 JNLP),将 构建、测试、部署 等任务下沉到 Agent;为不同团队/语言栈准备差异化 标签与工具链。
- 共享存储与高可用
- 多 Master 场景可用 NFS 共享 $JENKINS_HOME,前置 HAProxy/Nginx 做负载均衡与健康检查;注意 NFS 性能与一致性配置。
- 监控与告警
- 监控 JVM、HTTP 请求耗时、队列长度、执行器利用率 等关键指标,结合日志与告警策略保障稳定性。