2026-01-14 21:31:13 +08:00

483 lines
22 KiB
YAML
Raw Permalink 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:
# 内部私有仓库地址 - 企业内部部署的Harbor或Registry地址
registry: "192.168.10.102:8001"
# Jenkins凭证ID - 用于仓库认证的凭据ID
registryCredential: "xiaomayi-hub-credentials"
# 仓库中的项目/命名空间名称 - 镜像存放的项目空间
registryProject: "xiaomayi"
# 仓库类型 - 仓库的技术类型harbor、acr、dockerhub等
registryType: "harbor"
# 应用部署基础镜像
registryImage: "jdk:17.0.16-ubuntu22-dos"
# 阿里云ACR仓库配置 - 云上仓库,用于生产环境或特定场景
aliyun:
# 阿里云VPC内网地址 - 阿里云容器镜像服务的VPC内网地址网络性能更优
registry: "registry-vpc.cn-hangzhou.aliyuncs.com"
# 阿里云仓库认证凭证 - 阿里云访问凭据的Jenkins ID
registryCredential: "aliyun-hub-credentials"
# 阿里云仓库项目名称 - 阿里云ACR中的命名空间
registryProject: "xiaomayi-base"
# 仓库类型 - 阿里云容器镜像服务
registryType: "acr"
# 应用部署基础镜像
registryImage: "jdk:17.0.16-ubuntu22-dos"
# Docker Hub配置 - 官方Docker仓库用于公开镜像
dockerhub:
# Docker Hub地址 - 官方Docker仓库地址
registry: "index.docker.io"
# Docker Hub认证凭证 - Docker Hub账号的Jenkins凭据ID
registryCredential: "dockerhub-credentials"
# Docker Hub项目名称 - 用户名或组织名
registryProject: "xiaomayi-base"
# 仓库类型 - 官方Docker仓库
registryType: "dockerhub"
# 应用部署基础镜像
registryImage: "jdk:17.0.16-ubuntu22-dos"
# 钉钉消息
dingtalk:
# 凭证ID - Jenkins中存储的DingTalk认证凭据ID
credentialsId: "jenkins-dingtalk-robot"
# 通知配置 - 构建结果通知设置
notification:
# 构建成功通知配置
success:
# 通知渠道
channels:
# 邮件通知
email: ["xiaomayicloud@163.com"]
# 短信通知
#sms: ["15295504151"]
# 钉钉通知
dingtalk: true
# Slack通知
slack: false
# 构建失败通知配置
failure:
# 通知渠道
channels:
# 邮件通知
email: ["xiaomayicloud@163.com"]
# 短信通知
# sms: ["15295504151"]
# 钉钉通知
dingtalk: true
# Slack通知
slack: false
# 构建被中止通知
aborted:
# 通知渠道
channels:
# 邮件通知
email: ["xiaomayicloud@163.com"]
# 短信通知
#sms: ["15295504151"]
# 钉钉通知
dingtalk: true
# Slack通知
slack: false
# 构建不稳定通知配置
unstable:
# 通知渠道
channels:
# 邮件通知
email: ["xiaomayicloud@163.com"]
# 钉钉通知
dingtalk: true
# 构建策略 - 构建过程的策略配置
buildStrategy:
retryCount: 3 # 构建失败重试次数
timeoutMinutes: 60 # 构建超时时间(分钟)
cleanupWorkspace: true # 构建完成后是否清理工作空间
enableCaching: true # 是否启用Docker构建缓存
# 部署相关配置
deployScript: "deploy_env.sh" # 部署执行的shell脚本文件名
deployPath: "/usr/local/docker/yunheng-web" # 目标服务器上的应用部署根路径
# ==============================================================================
# 短信服务配置
# 描述: 定义短信通知服务的相关配置,支持多种短信服务商和模板配置
# ==============================================================================
# 短信服务提供商配置
sms:
# 短信服务商 - 指定使用的短信服务平台
# 可选值:
# - 'aliyun': 阿里云短信服务(推荐)
# - 'tencent': 腾讯云短信服务
# - 'yunpian': 云片短信服务
provider: 'aliyun'
# Jenkins凭据ID - 存储短信服务认证信息的Jenkins凭据标识
# 凭据内容格式建议为JSON或key=value格式包含accessKeyId/accessKeySecret等认证信息
credentialsId: 'jenkins-aliyun-credentials'
# 默认短信签名 - 在短信开头显示的签名内容
# 需要先在短信服务平台申请并通过审核的签名
signName: '小蚂蚁云'
# ==============================================================================
# 短信模板配置 - 定义不同场景下的短信模板
# 每个模板需要先在短信服务平台创建并通过审核
# ==============================================================================
templates:
# --------------------------------------------------------------------------
# 构建成功短信模板配置
# 用途: 当构建任务成功完成时发送的通知短信
# --------------------------------------------------------------------------
build_success:
# 模板代码 - 短信服务平台审核通过的模板ID
# 阿里云: SMS_开头的一串数字字母组合
# 腾讯云: 纯数字模板ID
# 云片: 长整型数字模板ID
templateCode: 'SMS_231440070'
# 模板签名 - 可覆盖默认签名,使用特定的签名
# 如果未设置,则使用顶层的默认签名
signName: '小蚂蚁云'
# 模板变量说明(在短信平台配置时定义):
# 通常包含: project, branch, status, duration, time 等变量
# 示例模板内容: "您的项目${project}构建${status},耗时${duration},时间${time}"
# --------------------------------------------------------------------------
# 构建失败短信模板配置
# 用途: 当构建任务失败时发送的告警短信
# --------------------------------------------------------------------------
build_failure:
# 模板代码 - 失败通知的专用模板ID
templateCode: 'SMS_231440070'
# 模板签名 - 失败通知使用的签名
signName: '小蚂蚁云'
# 模板变量说明:
# 通常包含: project, branch, status, duration, error, time 等变量
# 示例模板内容: "警告:项目${project}构建${status},错误:${error},时间${time}"
# --------------------------------------------------------------------------
# 部署通知短信模板(示例配置,可根据需要启用)
# 用途: 当应用部署完成时发送的通知短信
# --------------------------------------------------------------------------
# deployment:
# templateCode: 'SMS_DEPLOY_001'
# signName: '小蚂蚁云'
# --------------------------------------------------------------------------
# 系统告警短信模板(示例配置,可根据需要启用)
# 用途: 当系统发生异常或达到告警阈值时发送的短信
# --------------------------------------------------------------------------
# alert:
# templateCode: 'SMS_ALERT_001'
# signName: '小蚂蚁云'
# 环境配置文件 - 定义不同环境的特定配置
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: "maven-yunhengv4-host-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: "xiaomayi-web-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: "xiaomayi-web-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: "xiaomayi-web-docker-compose"
# 健康检查
yunheng-monitor:
programLang: "java"
programLangVersion: "17.0.16"
containerName: "yunheng-monitor"
pomFilePath: "yunheng-visual/yunheng-monitor/pom.xml"
servicePath: "yunheng-visual/yunheng-monitor"
jarName: "yunheng-monitor.jar"
port: "8081"
javaOpts: "-server -Xms256m -Xmx2g -Xss1m"
deployServer: "servers[0]"
composeFile: "xiaomayi-web-docker-compose"