jenkins-pipeline-files/config-file/xiaomayiConfig.yml
2025-09-14 19:00:57 +08:00

319 lines
16 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ==============================================================================
# 通用配置块 - 包含所有环境共享的配置项
# ==============================================================================
common:
# 镜像仓库配置 - 定义不同的容器镜像仓库
registrys:
# 默认仓库配置 - 内部私有仓库
default:
# 内部私有仓库地址
registry: "192.168.10.102:8001"
# Jenkins凭证ID用于仓库认证
registryCredential: "xiaomayi-hub-credentials"
# 仓库中的项目/命名空间名称
registryProject: "xiaomayi"
# 应用部署基础镜像
registryImage: "jdk:17.0.16-ubuntu22-dos"
# 阿里云ACR仓库配置 - 云上仓库,用于生产环境或特定场景
acr:
# 阿里云VPC内网地址网络性能更优
registry: "registry-vpc.cn-hangzhou.aliyuncs.com"
# 阿里云仓库认证凭证
registryCredential: "aliyun-hub-credentials"
# 阿里云仓库项目名称
registryProject: "xiaomayi"
# 应用部署基础镜像
registryImage: "jdk:17.0.16-ubuntu22-dos"
# 部署相关配置
deployScript: "deploy.sh" # 部署执行的shell脚本文件名
deployPath: "/usr/local/docker/xiaomayi-web/" # 目标服务器上的应用部署根路径
# 环境配置文件 - 定义不同环境的特定配置
profiles:
# --------------------------------------------------------------------------
# 开发环境配置 - 用于开发测试,部署频率高,配置相对宽松
# --------------------------------------------------------------------------
dev:
# 容器镜像
registry: "default"
# 服务器列表 - 部署目标服务器
servers:
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址用户名@IP
serverPort: 22 # SSH端口号
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
weight: 50 # 负载权重0-100用于流量控制
isPrimary: true # 主节点标识,优先部署
priority: 1 # 部署优先级(数字越小优先级越高)
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址用户名@IP
serverPort: 22 # SSH端口号
serverName: "S202服务器" # 服务器标识名称,用于日志和通知
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
weight: 50 # 负载权重0-100用于流量控制
isPrimary: false # 主节点标识,优先部署
priority: 2 # 部署优先级(数字越小优先级越高)
# 环境变量 - 部署时注入到容器中的环境变量
envVars:
SPRING_PROFILES_ACTIVE: "dev" # Spring Boot激活的配置文件环境
JAVA_OPTS: "-Xms512m -Xmx512m" # JVM内存参数初始堆512MB最大堆512MB
LOG_LEVEL: "INFO" # 日志级别INFO
TZ: "Asia/Shanghai" # 时区设置:亚洲/上海
# 部署策略配置
deploymentStrategy: "rolling" # 部署策略rolling-滚动部署
deploymentTimeout: 3600 # 整体部署超时时间3600秒=1小时
maxParallel: 2 # 最大并行部署服务器数量
retryAttempts: 3 # 部署失败重试次数
# 健康检查配置
healthCheckPath: "/actuator/health" # 健康检查端点
healthCheckTimeout: 180 # 健康检查超时时间180秒=3分钟
healthCheckInterval: 10 # 健康检查间隔10秒
successThreshold: 3 # 成功阈值连续3次检查成功才算健康
# --------------------------------------------------------------------------
# 测试环境配置 - 用于集成测试,配置接近生产环境
# --------------------------------------------------------------------------
test:
# 容器镜像
registry: "default"
# 服务器列表 - 部署目标服务器
servers:
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址用户名@IP
serverPort: 22 # SSH端口号
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
weight: 50 # 负载权重0-100用于流量控制
isPrimary: true # 主节点标识,优先部署
priority: 1 # 部署优先级(数字越小优先级越高)
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址用户名@IP
serverPort: 22 # SSH端口号
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
weight: 50 # 负载权重0-100用于流量控制
isPrimary: false # 主节点标识,优先部署
priority: 2 # 部署优先级(数字越小优先级越高)
# 环境变量 - 部署时注入到容器中的环境变量
envVars:
SPRING_PROFILES_ACTIVE: "test" # 测试环境配置文件
JAVA_OPTS: "-Xms1g -Xmx1g" # JVM内存1GB堆内存
LOG_LEVEL: "INFO"
TZ: "Asia/Shanghai"
# 部署策略配置
deploymentStrategy: "rolling"
deploymentTimeout: 3600 # 整体部署超时时间3600秒=1小时
maxParallel: 1 # 测试环境串行部署,便于问题排查
retryAttempts: 2
# 健康检查配置
healthCheckPath: "/actuator/health" # 健康检查端点
healthCheckTimeout: 180 # 健康检查超时时间180秒=3分钟
healthCheckInterval: 10 # 健康检查间隔10秒
successThreshold: 3 # 成功阈值连续3次检查成功才算健康
# --------------------------------------------------------------------------
# 用户验收测试环境配置 - 模拟生产环境,用于最终验收测试
# --------------------------------------------------------------------------
uat:
# 容器镜像
registry: "default"
# 服务器列表 - 部署目标服务器
servers:
- serverIP: "esxi@192.168.10.201" # 服务器SSH连接地址用户名@IP
serverPort: 22 # SSH端口号
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
weight: 50 # 负载权重0-100用于流量控制
isPrimary: true # 主节点标识,优先部署
priority: 1 # 部署优先级(数字越小优先级越高)
- serverIP: "esxi@192.168.10.202" # 服务器SSH连接地址用户名@IP
serverPort: 22 # SSH端口号
serverName: "S201服务器" # 服务器标识名称,用于日志和通知
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
weight: 50 # 负载权重0-100用于流量控制
isPrimary: false # 主节点标识,优先部署
priority: 2 # 部署优先级(数字越小优先级越高)
# 环境变量 - 部署时注入到容器中的环境变量
envVars:
SPRING_PROFILES_ACTIVE: "uat" # UAT环境配置文件
JAVA_OPTS: "-Xms2g -Xmx2g" # JVM内存2GB堆内存
LOG_LEVEL: "INFO"
TZ: "Asia/Shanghai"
# 部署策略配置
deploymentStrategy: "blue-green" # 蓝绿部署策略,减少停机时间
deploymentTimeout: 3600 # 整体部署超时时间3600秒=1小时
maxParallel: 1
retryAttempts: 1 # UAT环境不重试立即反馈问题
# 健康检查配置
healthCheckPath: "/actuator/health" # 健康检查端点
healthCheckTimeout: 180 # 健康检查超时时间180秒=3分钟
healthCheckInterval: 10 # 健康检查间隔10秒
successThreshold: 3 # 成功阈值连续3次检查成功才算健康
# --------------------------------------------------------------------------
# 生产环境配置 - 线上真实环境,配置最为严格
# --------------------------------------------------------------------------
prod:
# 容器镜像
registry: "default"
# 服务器列表 - 部署目标服务器
servers:
- serverIP: "esxi@124.222.176.210" # 服务器SSH连接地址用户名@IP
serverPort: 12422 # SSH端口号
serverName: "S210服务器" # 服务器标识名称,用于日志和通知
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
weight: 50 # 负载权重0-100用于流量控制
isPrimary: true # 主节点标识,优先部署
priority: 1 # 部署优先级(数字越小优先级越高)
- serverIP: "esxi@124.222.176.210" # 服务器SSH连接地址用户名@IP
serverPort: 12422 # SSH端口号
serverName: "S220服务器" # 服务器标识名称,用于日志和通知
sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID
weight: 50 # 负载权重0-100用于流量控制
isPrimary: false # 主节点标识,优先部署
priority: 2 # 部署优先级(数字越小优先级越高)
# 环境变量 - 部署时注入到容器中的环境变量
envVars:
SPRING_PROFILES_ACTIVE: "prod" # 生产环境配置文件
JAVA_OPTS: "-Xms4g -Xmx4g" # JVM内存4GB堆内存
LOG_LEVEL: "WARN" # 生产环境使用WARN级别日志减少日志量
TZ: "Asia/Shanghai"
GC_OPTS: "-XX:+UseG1GC -XX:MaxGCPauseMillis=200" # GC调优参数使用G1垃圾回收器
# 部署策略配置
deploymentStrategy: "canary" # 金丝雀部署策略,逐步发布降低风险
deploymentTimeout: 3600 # 整体部署超时时间3600秒=1小时
maxParallel: 1 # 生产环境单台串行部署,确保稳定性
retryAttempts: 3 # 部署失败重试次数
canaryPercentage: 25 # 首批金丝雀发布比例25%
# 健康检查配置
healthCheckEnabled: true # 启用健康检查
healthCheckPath: "/actuator/health" # 健康检查端点
healthCheckTimeout: 180 # 健康检查超时时间180秒=3分钟
healthCheckRetries: 5 # 健康检查5次重试
healthCheckInterval: 10 # 健康检查间隔10秒
successThreshold: 3 # 成功阈值连续3次检查成功才算健康
# 回滚配置
rollbackEnabled: true # 启用自动回滚
rollbackOnFailure: true # 部署失败时自动回滚
rollbackTimeout: 300 # 回滚操作超时时间300秒=5分钟
# 通知配置 - 生产环境部署状态通知
notifications:
slackChannel: "#prod-deployments" # Slack通知频道
email: "xiaomayicloud@163.com" # 主要邮件通知地址
onSuccess: true # 成功时发送通知
onFailure: true # 失败时发送通知
onStart: true # 开始部署时发送通知
recipients: # 额外通知人员邮件列表
- "devops@xiaomayi.com"
- "product-manager@xiaomayi.com"
# ==============================================================================
# 分支构建配置 - 定义不同Git分支的构建参数
# ==============================================================================
branchConfig:
# 开发分支配置
dev:
# Jenkins代理
jenkinsAgent: "S205-docker"
# Maven构建配置 - Java应用编译和打包
maven:
mavenSet: "nexus-maven-dev" # Maven配置集名称
skipTests: true # 生产构建不跳过测试
goals: "clean package" # Maven执行目标
options: "" # Maven选项参数
# Docker镜像构建配置
docker:
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
buildOptions: "--no-cache --pull" # Docker构建选项禁用缓存、总是拉取最新基础镜像
# 测试分支配置
test:
# Jenkins代理
jenkinsAgent: "S205-docker"
# Maven构建配置 - Java应用编译和打包
maven:
mavenSet: "nexus-maven-test" # Maven配置集名称
skipTests: true # 生产构建不跳过测试
goals: "clean package" # Maven执行目标
options: "" # Maven选项参数
# Docker镜像构建配置
docker:
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
buildOptions: "--no-cache --pull" # Docker构建选项禁用缓存、总是拉取最新基础镜像
# 主分支配置(生产环境)
master:
# Jenkins代理
jenkinsAgent: "S205-docker"
# Maven构建配置 - Java应用编译和打包
maven:
mavenSet: "nexus-maven-dev" # Maven配置集名称
skipTests: false # 生产构建不跳过测试
goals: "clean package" # Maven执行目标
options: "" # Maven选项参数
# Docker镜像构建配置
docker:
dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件
buildOptions: "--no-cache --pull" # Docker构建选项禁用缓存、总是拉取最新基础镜像
# ==============================================================================
# 服务配置 - 定义每个微服务的特定配置
# ==============================================================================
serviceConfig:
# 后台系统
xiaomayi-admin:
programLang: "java"
programLangVersion: "17.0.16"
containerName: "xiaomayi-admin"
pomFilePath: "pom.xml"
servicePath: "xiaomayi-modules/xiaomayi-admin"
jarName: "xiaomayi-admin.jar"
port: "8081"
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
deployServer: "servers[0]"
composeFile: "docker-compose"
xiaomayi-admin-ui:
programLang: "nodejs"
programLangVersion: "22.19.0"
deployMethod: "static"
projectName: "xiaomayi-admin-ui"
packageName: "xiaomayi-admin-ui.tar.gz"
servicePath: "xiaomayi-ui"
containerName: "xiaomayi-admin-ui"
port: "8001"
deployServer: "servers[0]"
composeFile: "docker-compose"
# 前台网站
xiaomayi-web:
programLang: "java"
programLangVersion: "17.0.16"
containerName: "xiaomayi-web2"
pomFilePath: "pom.xml"
servicePath: "xiaomayi-modules/xiaomayi-web"
jarName: "xiaomayi-web.jar"
port: "8082"
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
deployServer: "servers[0]"
composeFile: "docker-compose"