🚀 Jenkins 服务器部署与核心插件安装

基于 OpenClaw + Claude Code 的端到端研发自动化系统

📅 部署日期:2026 年 3 月 13 日
⚙️ 版本:LTS-JDK17
🔧 状态:就绪部署

📊 项目概述

本部署方案提供完整的 Jenkins 持续集成/持续部署 (CI/CD) 平台,集成了 Git、Docker、Kubernetes(KubeSphere)、SonarQube 等核心 DevOps 工具链,支持从需求分析到自动部署的全流程自动化研发。

4
核心服务容器
40+
预配置插件
4
流水线模板
100%
自动化部署
✓ 部署优势:一键启动、预配置插件、开箱即用、支持多种技术栈、完整的 CI/CD 流水线模板

🏗️ 系统架构

采用 Docker Compose 编排的微服务架构,所有组件容器化部署,确保环境一致性和可移植性。

开发者
代码提交
Git
版本控制
Jenkins
CI/CD引擎
SonarQube
代码质量
Docker
容器构建
K8s
自动部署

📁 文件结构

📂 jenkins-deployment/
├── 📄 docker-compose.yml (主编排文件)
├── 📄 deploy.sh (部署脚本)
├── 📂 scripts/
│ ├── start.sh (启动脚本)
│ ├── stop.sh (停止脚本)
│ ├── restart.sh (重启脚本)
│ ├── cleanup.sh (清理脚本)
│ ├── backup.sh (备份脚本)
│ └── health-check.sh (健康检查)
├── 📂 pipeline-templates/
│ ├── Jenkinsfile-java-basic
│ ├── Jenkinsfile-frontend
│ ├── Jenkinsfile-python
│ └── Jenkinsfile-microservices
├── 📂 k8s/
│ ├── jenkins-agent-template.yaml
│ └── sample-deployment.yaml
├── 📂 jenkins-home/
│ └── init.groovy.d/ (初始化脚本)
└── 📄 README.md (使用文档)

🧩 核心组件

🐳
Jenkins Master
版本:lts-jdk17 | 端口:8080, 50000
  • LTS 长期支持版本
  • JDK 17 运行环境
  • 持久化数据存储
  • Docker-in-Docker 支持
  • 自动插件安装
🔍
SonarQube Server
版本:lts-community | 端口:9000
  • 代码质量分析
  • 漏洞检测
  • 代码异味识别
  • 测试覆盖率报告
  • 多语言支持
🐘
PostgreSQL
版本:15-alpine | 端口:5432
  • SonarQube 数据库
  • 高性能存储
  • 数据持久化
  • 自动备份支持
  • 轻量级 Alpine 镜像
☸️
Kubernetes 集成
动态 Agent | 按需创建
  • 动态构建 Agent
  • 资源隔离
  • 弹性伸缩
  • 多集群支持
  • KubeSphere 兼容

🔌 插件清单

预配置 40+ 个核心插件,覆盖版本控制、构建工具、代码质量、容器化、通知等全场景需求。

插件名称 功能描述 状态
Git Git 版本控制集成 已配置
Git Parameter Git 参数化构建 已配置
GitLab Plugin GitLab Webhook 集成 已配置
GitHub GitHub 集成 已配置
GitHub OAuth GitHub OAuth 认证 已配置
插件名称 功能描述 状态
Maven Plugin Java/Maven 项目构建 已配置
Gradle Gradle 构建工具 已配置
NodeJS Node.js 环境 已配置
NPM NPM 包管理 已配置
Pytest Python 测试框架 已配置
插件名称 功能描述 状态
Docker Plugin Docker 容器构建与管理 已配置
Kubernetes K8s 集群集成 已配置
Kubernetes CLI kubectl 命令行工具 已配置
Kubernetes Pipeline K8s 流水线步骤 已配置
插件名称 功能描述 状态
SonarQube 代码质量分析平台 已配置
JaCoCo Java 代码覆盖率 已配置
Cobertura 代码覆盖率报告 已配置
CheckStyle Java 代码规范检查 已配置
Warnings NG 编译器警告分析 已配置
插件名称 功能描述 状态
Pipeline 流水线核心引擎 已配置
Blue Ocean 现代化 UI 界面 已配置
Pipeline Utility Steps 通用流水线步骤 已配置
Pipeline Stage View 流水线阶段可视化 已配置
Job DSL 任务领域特定语言 已配置
插件名称 功能描述 状态
Role Strategy 基于角色的授权 已配置
Matrix Authorization 矩阵权限控制 已配置
Audit Trail 操作审计日志 已配置
Credentials Binding 凭据绑定 已配置
HashiCorp Vault 密钥管理集成 需配置

📦 部署步骤

⚠️ 前置条件:请确保 Docker Desktop 已安装并运行,至少 4GB 可用内存,20GB 可用磁盘空间。
  1. 启动 Docker Desktop

    确保 Docker Desktop 处于运行状态,可以通过系统托盘图标确认。

    # macOS 检查 Docker 状态
    docker info
  2. 执行部署脚本

    运行自动化部署脚本,将创建所有配置文件和目录结构。

    # 进入部署目录
    cd jenkins-deployment

    # 执行部署脚本
    ./deploy.sh
  3. 启动服务

    使用提供的启动脚本启动所有服务。

    # 启动所有服务
    ./scripts/start.sh

    # 或手动启动
    docker compose up -d
  4. 等待服务就绪

    首次启动需要下载镜像,大约需要 5-10 分钟。可以使用健康检查脚本监控状态。

    # 运行健康检查
    ./scripts/health-check.sh
  5. 访问服务

    服务启动完成后,通过浏览器访问各服务界面。

🔧 管理命令

# 查看服务状态
docker compose ps

# 查看日志
docker logs jenkins-master -f
docker logs sonarqube-server -f

# 重启服务
./scripts/restart.sh

# 停止服务
./scripts/stop.sh

# 备份数据
./scripts/backup.sh

# 清理所有数据(谨慎使用)
./scripts/cleanup.sh

🔄 CI/CD 流水线模板

提供 4 个预定义的流水线模板,覆盖主流技术栈和项目类型。

☕ Java 基础模板
Jenkinsfile-java-basic
  • Maven 构建
  • 单元测试 + 覆盖率
  • SonarQube 分析
  • Docker 镜像构建
  • K8s 自动部署
🎨 前端模板
Jenkinsfile-frontend
  • Node.js 环境
  • NPM 依赖安装
  • ESLint 代码检查
  • 单元测试 + 覆盖率
  • 构建产物归档
🐍 Python 模板
Jenkinsfile-python
  • 虚拟环境创建
  • Pip 依赖安装
  • Flake8/Black 检查
  • Pytest 测试
  • 打包发布
🏗️ 微服务模板
Jenkinsfile-microservices
  • 多服务并行构建
  • 参数化部署
  • 集成测试
  • 多环境部署
  • Slack 通知

💡 使用示例

# 在 Jenkins 中创建新任务
1. 点击 "新建 Item"
2. 选择 "Pipeline"
3. 在 "Pipeline" 配置中选择 "Pipeline script from SCM"
4. 选择 Git 仓库和分支
5. 指定 Jenkinsfile 路径
6. 点击 "Save" 并 "Build Now"

🔐 访问信息

Jenkins

http://localhost:8080
用户名: admin
密码: admin123

SonarQube

http://localhost:9000
用户名: admin
密码: admin123

PostgreSQL

localhost:5432
数据库: sonar
用户: sonar
密码: sonar123

Blue Ocean UI

http://localhost:8080/blue
说明: Jenkins 现代化界面
凭据: 同 Jenkins
🚨 安全警告:生产环境必须修改所有默认密码!建议启用 HTTPS、配置防火墙规则、限制访问 IP。

🔧 故障排查

常见问题解决方案

问题 1: Jenkins 无法启动
解决方案:
# 查看日志
docker logs jenkins-master

# 检查端口占用
lsof -i:8080

# 增加内存限制
# 编辑 docker-compose.yml,调整 JAVA_OPTS
JAVA_OPTS=-Xmx1024m -Xms256m
问题 2: 插件安装失败
解决方案:
# 手动进入容器安装
docker exec -it jenkins-master bash

# 使用 Jenkins CLI 安装
java -jar /usr/share/jenkins/jenkins-cli.jar install-plugin git
问题 1: SonarQube 启动超时
解决方案:
# 查看日志
docker logs sonarqube-server

# 检查数据库连接
docker exec sonarqube-postgres psql -U sonar -d sonar -c "SELECT 1"

# 增加启动等待时间
# Elasticsearch 需要更长时间启动
问题 2: 内存不足错误
解决方案:
# 编辑 docker-compose.yml
environment:
- SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true
- JAVA_OPTS=-Xmx512m -Xms128m
问题:Docker Socket 权限错误
解决方案:
# 确保 Docker Desktop 运行
open -a Docker

# 检查 Socket 挂载
ls -la /var/run/docker.sock

# 重启 Docker Desktop
quit Docker Desktop and restart
问题:Kubernetes 连接失败
解决方案:
# 本地开发:启用 Docker Desktop K8s
打开 Docker Desktop 设置 → Kubernetes → Enable

# 验证 K8s 连接
kubectl cluster-info

# 配置 kubeconfig 凭据
# 在 Jenkins 中添加 Kubernetes Cloud