# ============================================================================== # 通用配置块 - 包含所有环境共享的配置项 # ============================================================================== 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: "go:1.25.1-rocky8-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: "go:1.25.1-rocky8-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: "go:1.25.1-rocky8-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: "/opt/apps" # 目标服务器上的应用部署根路径 # ============================================================================== # 短信服务配置 # 描述: 定义短信通知服务的相关配置,支持多种短信服务商和模板配置 # ============================================================================== # 短信服务提供商配置 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.110" # 服务器SSH连接地址(用户名@IP) serverPort: 22 # SSH端口号 serverName: "S110服务器" # 服务器标识名称,用于日志和通知 sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID weight: 50 # 负载权重(0-100),用于流量控制 isPrimary: true # 主节点标识,优先部署 priority: 1 # 部署优先级(数字越小优先级越高) - serverIP: "esxi@192.168.10.110" # 服务器SSH连接地址(用户名@IP) serverPort: 22 # SSH端口号 serverName: "S202服务器" # 服务器标识名称,用于日志和通知 sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID weight: 50 # 负载权重(0-100),用于流量控制 isPrimary: false # 主节点标识,优先部署 priority: 2 # 部署优先级(数字越小优先级越高) # 环境变量 - 部署时注入到容器中的环境变量 envVars: 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.110" # 服务器SSH连接地址(用户名@IP) serverPort: 22 # SSH端口号 serverName: "S110服务器" # 服务器标识名称,用于日志和通知 sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID weight: 50 # 负载权重(0-100),用于流量控制 isPrimary: true # 主节点标识,优先部署 priority: 1 # 部署优先级(数字越小优先级越高) - serverIP: "esxi@192.168.10.110" # 服务器SSH连接地址(用户名@IP) serverPort: 22 # SSH端口号 serverName: "S110服务器" # 服务器标识名称,用于日志和通知 sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID weight: 50 # 负载权重(0-100),用于流量控制 isPrimary: false # 主节点标识,优先部署 priority: 2 # 部署优先级(数字越小优先级越高) # 环境变量 - 部署时注入到容器中的环境变量 envVars: 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.110" # 服务器SSH连接地址(用户名@IP) serverPort: 22 # SSH端口号 serverName: "S110服务器" # 服务器标识名称,用于日志和通知 sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID weight: 50 # 负载权重(0-100),用于流量控制 isPrimary: true # 主节点标识,优先部署 priority: 1 # 部署优先级(数字越小优先级越高) - serverIP: "esxi@192.168.10.110" # 服务器SSH连接地址(用户名@IP) serverPort: 22 # SSH端口号 serverName: "S110服务器" # 服务器标识名称,用于日志和通知 sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID weight: 50 # 负载权重(0-100),用于流量控制 isPrimary: false # 主节点标识,优先部署 priority: 2 # 部署优先级(数字越小优先级越高) # 环境变量 - 部署时注入到容器中的环境变量 envVars: 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@192.168.10.110" # 服务器SSH连接地址(用户名@IP) serverPort: 22 # SSH端口号 serverName: "S210服务器" # 服务器标识名称,用于日志和通知 sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID weight: 50 # 负载权重(0-100),用于流量控制 isPrimary: true # 主节点标识,优先部署 priority: 1 # 部署优先级(数字越小优先级越高) - serverIP: "esxi@192.168.10.110" # 服务器SSH连接地址(用户名@IP) serverPort: 22 # SSH端口号 serverName: "S220服务器" # 服务器标识名称,用于日志和通知 sshKey: "jenkins-ssh-207" # Jenkins SSH密钥凭证ID weight: 50 # 负载权重(0-100),用于流量控制 isPrimary: false # 主节点标识,优先部署 priority: 2 # 部署优先级(数字越小优先级越高) # 环境变量 - 部署时注入到容器中的环境变量 envVars: TZ: "Asia/Shanghai" # 部署策略配置 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分钟) # ============================================================================== # 分支构建配置 - 定义不同Git分支的构建参数 # ============================================================================== branchConfig: # 开发分支配置 dev: # Jenkins代理 jenkinsAgent: "S204-docker" # Docker镜像构建配置 docker: dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件 buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像 # 测试分支配置 test: # Jenkins代理 jenkinsAgent: "S204-docker" # Docker镜像构建配置 docker: dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件 buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像 # 主分支配置(生产环境) master: # Jenkins代理 jenkinsAgent: "S204-docker" # Docker镜像构建配置 docker: dockerFile: ".jenkins/Dockerfile" # 使用的Dockerfile文件 buildOptions: "--no-cache --pull" # Docker构建选项:禁用缓存、总是拉取最新基础镜像 # ============================================================================== # 服务配置 - 定义每个微服务的特定配置 # ============================================================================== serviceConfig: gin_layui2: programLang: "go" programLangVersion: "1.25.1" containerName: "gin_layui2" packageName: "gin_layui2" servicePath: "." mainFile: "main.go" goFile: "gin_layui2" port: "8010" deployServer: "servers[0]" composeFile: "golang-docker-compose" gin_elevue: programLang: "go" programLangVersion: "1.25.1" containerName: "gin_elevue" packageName: "gin_elevue" servicePath: "." mainFile: "main.go" goFile: "gin_elevue" port: "8013" deployServer: "servers[0]" composeFile: "golang-docker-compose" gin_elevue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "gin_elevue" containerName: "gin_elevue" packageName: "gin_elevue.tar.gz" servicePath: "evui" port: "8001" deployServer: "servers[0]" gin_antdvue: programLang: "go" programLangVersion: "1.25.1" containerName: "gin_antdvue" packageName: "gin_antdvue" servicePath: "." mainFile: "main.go" goFile: "gin_antdvue" port: "8016" deployServer: "servers[0]" composeFile: "golang-docker-compose" gin_antdvue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "gin_antdvue" containerName: "gin_antdvue" packageName: "gin_antdvue.tar.gz" servicePath: "avui" port: "8001" deployServer: "servers[0]" goframe_layui: programLang: "go" programLangVersion: "1.25.1" containerName: "goframe_layui" packageName: "goframe_layui" servicePath: "." mainFile: "main.go" goFile: "goframe_layui" port: "8020" deployServer: "servers[0]" composeFile: "golang-docker-compose" goframe_elevue: programLang: "go" programLangVersion: "1.25.1" containerName: "goframe_elevue" packageName: "goframe_elevue" servicePath: "." mainFile: "main.go" goFile: "goframe_elevue" port: "8023" deployServer: "servers[0]" composeFile: "golang-docker-compose" goframe_elevue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "goframe_elevue" containerName: "goframe_elevue" packageName: "goframe_elevue.tar.gz" servicePath: "evui" port: "8001" deployServer: "servers[0]" goframe_antdvue: programLang: "go" programLangVersion: "1.25.1" containerName: "goframe_antdvue" packageName: "goframe_antdvue" servicePath: "." mainFile: "main.go" goFile: "goframe_antdvue" port: "8026" deployServer: "servers[0]" composeFile: "golang-docker-compose" goframe_antdvue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "goframe_antdvue" containerName: "goframe_antdvue" packageName: "goframe_antdvue.tar.gz" servicePath: "avui" port: "8001" deployServer: "servers[0]" beego_layui: programLang: "go" programLangVersion: "1.25.1" containerName: "beego_layui" packageName: "beego_layui" servicePath: "." mainFile: "main.go" goFile: "beego_layui" port: "8030" deployServer: "servers[0]" composeFile: "golang-docker-compose" beego_elevue: programLang: "go" programLangVersion: "1.25.1" containerName: "beego_elevue" packageName: "beego_elevue" servicePath: "." mainFile: "main.go" goFile: "beego_elevue" port: "8033" deployServer: "servers[0]" composeFile: "golang-docker-compose" beego_elevue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "beego_elevue" containerName: "beego_elevue" packageName: "beego_elevue.tar.gz" servicePath: "evui" port: "8001" deployServer: "servers[0]" beego_antdvue: programLang: "go" programLangVersion: "1.25.1" containerName: "beego_antdvue" packageName: "beego_antdvue" servicePath: "." mainFile: "main.go" goFile: "beego_antdvue" port: "8036" deployServer: "servers[0]" composeFile: "golang-docker-compose" beego_antdvue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "beego_antdvue" containerName: "beego_antdvue" packageName: "beego_antdvue.tar.gz" servicePath: "avui" port: "8001" deployServer: "servers[0]" iris_layui: programLang: "go" programLangVersion: "1.25.1" containerName: "iris_layui" packageName: "iris_layui" servicePath: "." mainFile: "main.go" goFile: "iris_layui" port: "8040" deployServer: "servers[0]" composeFile: "golang-docker-compose" iris_elevue: programLang: "go" programLangVersion: "1.25.1" containerName: "iris_elevue" packageName: "iris_elevue" servicePath: "." mainFile: "main.go" goFile: "iris_elevue" port: "8043" deployServer: "servers[0]" composeFile: "golang-docker-compose" iris_elevue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "iris_elevue" containerName: "iris_elevue" packageName: "iris_elevue.tar.gz" servicePath: "evui" port: "8001" deployServer: "servers[0]" iris_antdvue: programLang: "go" programLangVersion: "1.25.1" containerName: "iris_antdvue" packageName: "iris_antdvue" servicePath: "." mainFile: "main.go" goFile: "iris_antdvue" port: "8046" deployServer: "servers[0]" composeFile: "golang-docker-compose" iris_antdvue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "iris_antdvue" containerName: "iris_antdvue" packageName: "iris_antdvue.tar.gz" servicePath: "avui" port: "8001" deployServer: "servers[0]" echo_layui: programLang: "go" programLangVersion: "1.25.1" containerName: "echo_layui" packageName: "echo_layui" servicePath: "." mainFile: "main.go" goFile: "echo_layui" port: "8050" deployServer: "servers[0]" composeFile: "golang-docker-compose" echo_elevue: programLang: "go" programLangVersion: "1.25.1" containerName: "echo_elevue" packageName: "echo_elevue" servicePath: "." mainFile: "main.go" goFile: "echo_elevue" port: "8053" deployServer: "servers[0]" composeFile: "golang-docker-compose" echo_elevue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "echo_elevue" containerName: "echo_elevue" packageName: "echo_elevue.tar.gz" servicePath: "evui" port: "8001" deployServer: "servers[0]" echo_antdvue: programLang: "go" programLangVersion: "1.25.1" containerName: "echo_antdvue" packageName: "echo_antdvue" servicePath: "." mainFile: "main.go" goFile: "echo_antdvue" port: "8056" deployServer: "servers[0]" composeFile: "golang-docker-compose" echo_antdvue_ui: programLang: "nodejs" programLangVersion: "22.19.0" deployMethod: "static" projectName: "echo_antdvue" containerName: "echo_antdvue" packageName: "echo_antdvue.tar.gz" servicePath: "avui" port: "8001" deployServer: "servers[0]"