提交 ba509582 authored 作者: 陈泽健's avatar 陈泽健

docs(prd): 添加自动更新部署包版本需求文档并移除旧文档

- 添加新的自动更新部署包版本需求文档
- 移除自动打包上传需求文档
- 移除远程更新程序需求文档及计划执行文档
- 更新远程部署脚本支持多架构配置
- 添加ARM-Ubuntu部署配置和sudo权限支持
- 优化SSH命令执行函数支持sudo模式
上级 e2634b4e
# 自动更新部署包版本
## 服务器信息
### 测试服务器
- IP:192.168.5.44
- 端口:22
- 账号:root
- 密码:Ubains@123
### 打包服务器
- IP:192.168.5.68
- 端口:22
- 账号:root
- 密码:Ubains@123
- 自动化部署包存放目录:/data/
- 自动化部署包名称:offline_auto_unifiedPlatform
- 自动化部署包目录:/data/offline_auto_unifiedPlatform
## 测试服务器的服务目录信息
### 会议预定
#### 前端服务目录:
- ai包:/data/services/web/pc/pc-vue2-ai
- index.html
- static文件夹
- 后台包:/data/services/web/pc/pc-vue2-backstage
- index.html
- static文件夹
- main包:/data/services/web/pc/pc-vue2-main
- index.html
- static文件夹
- meetngV2包:/data/services/web/pc/pc-vue2-meetngV2
- index.html
- static文件夹
- meetngV3包:/data/services/web/pc/pc-vue2-meetngV3
- index.html
- static文件夹
- meetingControl:/data/services/web/pc/pc-vue2-meetingControl
- index.html
- static文件夹
- monitor包:/data/services/web/pc/pc-vue2-moniter
- index.html
- static文件夹
- module文件夹
- platform包:/data/services/web/pc/pc-vue2-platform
- index.html
- static文件夹
- temp文件夹
- voice包:/data/services/web/pc/pc-vue2-voice/pc-vue2-voice
- index.html
- static文件夹
- h5-meeting:/data/services/web/h5/h5-uniapp-meeting
- index.html
- static文件夹
- h5-moniter:/data/services/web/h5/h5-uniapp-moniter
- index.html
- static文件夹
- h5-platform-mobile:/data/services/web/h5/h5-uniapp-platform/meeting-mobile
- assets文件夹
- index.html
- static文件夹
- h5-platform-platform-mobile:/data/services/web/h5/h5-uniapp-platform/unified-platform-mobile
- index.html
- static文件夹
### 后端服务目录:
- auth包:/data/services/api/auth/auth-sso-aut
- ubains-auth.jar
- gatway包:/data/services/api/auth/auth-sso-gatway
- ubains-gateway.jar
- system包:/data/services/api/auth/auth-sso-system
- ubains-modules-system.jar
- java2.0包:/data/services/api/java-meeting/java-meeting2.0
- ubains-meeting-inner-api-1.0-SNAPSHOT.jar
- java-extapi包:/data/services/api/java-meeting/java-meeting-extapi
- ubains-meeting-api-1.0-SNAPSHOT.jar
- java-scheduling包:/data/services/api/java-meeting/java-message-scheduling
- ubains-meeting-message-scheduling-1.0-SNAPSHOT.jar
- java-mqtt包:/data/services/api/java-meeting/java-mqtt
- ubains-meeting-mqtt-1.0-SNAPSHOT.jar
- java-quartz包:/data/services/api/java-meeting/java-quartz
- ubains-meeting-quartz-1.0-SNAPSHOT.jar
- cmdb包:/data/services/api/python-cmdb
- cmdb文件夹
- UbainsDevOps文件夹
- voice包:/data/services/api/python-voice
- UbainsDevOps文件夹
- uvoice文件夹
## 打包服务器的服务目录信息
### 会议预定
#### 前端服务目录:
- ai包:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-ai
- index.html
- static文件夹
- 后台包:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-backstage
- index.html
- static文件夹
- main包:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-main
- index.html
- static文件夹
- meetngV2包:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-meetngV2
- index.html
- static文件夹
- meetngV3包:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-meetngV3
- index.html
- static文件夹
- meetingControl:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-meetingControl
- index.html
- static文件夹
- monitor包:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-moniter
- index.html
- static文件夹
- module文件夹
- platform包:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-platform
- index.html
- static文件夹
- temp文件夹
- voice包:/data/offline_auto_unifiedPlatform/data/services/web/pc/pc-vue2-voice/pc-vue2-voice
- index.html
- static文件夹
- h5-meeting:/data/offline_auto_unifiedPlatform/data/services/web/h5/h5-uniapp-meeting
- index.html
- static文件夹
- h5-moniter:/data/offline_auto_unifiedPlatform/data/services/web/h5/h5-uniapp-moniter
- index.html
- static文件夹
- h5-platform-mobile:/data/offline_auto_unifiedPlatform/data/services/web/h5/h5-uniapp-platform/meeting-mobile
- assets文件夹
- index.html
- static文件夹
- h5-platform-platform-mobile:/data/offline_auto_unifiedPlatform/data/services/web/h5/h5-uniapp-platform/unified-platform-mobile
- index.html
- static文件夹
### 后端服务目录:
- auth包:/data/offline_auto_unifiedPlatform/data/services/api/auth/auth-sso-aut
- ubains-auth.jar
- gatway包:/data/offline_auto_unifiedPlatform/data/services/api/auth/auth-sso-gatway
- ubains-gateway.jar
- system包:/data/offline_auto_unifiedPlatform/data/services/api/auth/auth-sso-system
- ubains-modules-system.jar
- java2.0包:/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-meeting2.0
- ubains-meeting-inner-api-1.0-SNAPSHOT.jar
- java-extapi包:/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-meeting-extapi
- ubains-meeting-api-1.0-SNAPSHOT.jar
- java-scheduling包:/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-message-scheduling
- ubains-meeting-message-scheduling-1.0-SNAPSHOT.jar
- java-mqtt包:/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-mqtt
- ubains-meeting-mqtt-1.0-SNAPSHOT.jar
- java-quartz包:/data/offline_auto_unifiedPlatform/data/services/api/java-meeting/java-quartz
- ubains-meeting-quartz-1.0-SNAPSHOT.jar
- cmdb包:/data/offline_auto_unifiedPlatform/data/services/api/python-cmdb
- cmdb文件夹
- UbainsDevOps文件夹
- voice包:/data/offline_auto_unifiedPlatform/data/services/api/python-voice
- UbainsDevOps文件夹
- uvoice文件夹
## 部署包更新说明
- 前端包更新说明:
- 前端包更新时需要将打包服务器上原static中的config.json或config.js文件覆盖到更新的服务包中的static目录下。
- jar格式后端包更新说明
- 直接覆盖更新
- cmdb文件夹后端包更新说明:
- 需要将原文件夹下bus/config/settingbus.conf覆盖到更新的服务包原路径。
- uvoice文件夹后端包更新说明:
- 需要将原文件夹下bus/config/settingbus.conf覆盖到更新的服务包原路径。
- 所有服务更新操作完毕后需将/data/目录下的offline_auto_unifiedPlatform文件夹打压缩成tar.gz格式,并增加md5格式校验。
- 将tar.gz格式文件与md5格式文件拷贝至网盘目录:[\\192.168.9.9\发布版本\03服务器部署\15新统一平台\X86部署包\全量版\版本更新-待验证]
- 拷贝到网盘目录后将打包服务器上的tar.gz和md5格式文件清理。
## 核验材料
1. 所有的操作需日志记录说明
2. 所有操作结束后需输出报告说明,报告以md格式存储。
# 远程更新程序
## 代码路径
- 代码路径:[AuxiliaryTool/ScriptTool/RemoteUpdate/remote_update.ps1]
## 功能需求
### 功能目标
**目标:** 通过powershell执行后一键更新系统前后端服务,并执行服务备份与更新操作,生成服务更新报告。
### 需求描述
#### 功能描述
- 通过powershell执行ssh服务器连接后,选择更新服务一键更新系统前后端服务,并执行服务备份与更新操作,生成服务更新报告。
### 远程程序更新逻辑
#### 交互步骤
- 程序交互方式:
- 服务器信息:
- 服务器IP地址:用户手动输入
- ssh端口号:用户手动输入
- 登录用户名:用户手动输入
- 登录密码:用户手动输入
- 连接超时:30秒,可重拾3次,3次连接失败,则退出程序。
- 打印服务器信息。
- 执行ssh连接服务器,获取服务器信息。
- 连接ssh服务器,增加超时处理。
- 获取服务器操作系统、系统架构信息。
- 获取服务器时间。
- 获取服务器home目录剩余空间,如剩余空间小于5GB,则打印警告并退出程序。
- 获取服务器当前平台类型,通过目录进行判断。
- 新统一平台类型:/data/services
- 传统平台类型:/var/www/
- 如两者目录都存在,则警告,并退出程序。
- 如两者目录都不存在,则警告,并退出程序。
- 打印服务器信息。
- 系统类型选择:
- 通过用户手动输入编号,选择对应系统类型。
- 系统类型列表:1、预定系统;2、运维集控系统;3、讯飞转录系统。4、统一平台系统
- 系统类型选择错误:重新选择系统类型。
- 打印所选系统类型。
- 服务更新类型选择:
- 通过用户手动输入编号,选择对应服务更新类型。
- 服务更新类型列表:1、前端更新;2、后端更新;3、全量更新
- 服务更新类型选择错误:重新选择服务更新类型。
- 更新类型映射表:读取[AuxiliaryTool/ScriptTool/RemoteUpdate/update_type_mapping.json]
- 打印所选更新类型。
- 创建服务器更新目录:
- 通过mkdir -p /home/update创建更新目录,用以存放更新包。
- 创建失败:打印创建失败信息,并重新创建,重试3次,3次失败,则退出程序。
- 通过plink.exe上传更新包:[update_package.zip]
- 读取更新包的路径映射表获取:[AuxiliaryTool/ScriptTool/RemoteUpdate/update_package_old.json][AuxiliaryTool/ScriptTool/RemoteUpdate/update_package_new.json]
- 备份数据库:
- 上传数据库备份脚本:[AuxiliaryTool/ScriptTool/RemoteUpdate/backup_db.sh]
- 执行数据库备份脚本:[AuxiliaryTool/ScriptTool/RemoteUpdate/backup_db.sh]
- 导出数据库:通过pscp将服务器上的数据库备份文件导出到本地Sqlbackup目录。
- 打印备份数据库信息。
- 备份前后端包:
- 创建服务器备份目录/home/backup:
- 根据更新类型映射表获取对应包路径,将服务器上的原服务包复制到服务器/home/backup目录下。
- 压缩服务包:将/home/backup目录压缩成zip格式文件,并通过pscp导出到本地Servicebackup目录。
- 打印备份前后端包信息。
- 更新程序上传:
- 将更新程序脚本[AuxiliaryTool/ScriptTool/RemoteUpdate/service_update.sh]上传至服务器/home/update目录下。
- 通过plink.exe执行更新程序脚本:[AuxiliaryTool/ScriptTool/RemoteUpdate/service_update.sh],传入服务更新类型参数。
- service_update.sh脚本主要用于接收服务更新类型参数,并执行更新程序,不存在回滚机制。
- 打印更新程序信息。
- 整理记录至远端更新程序报告文档[AuxiliaryTool/ScriptTool/RemoteUpdate/reports],以上信息需整理至远端更新程序报告文档。
#### 脚本路径
- 当前文档脚本路径为项目代码路径,实际执行时需以当前powershell执行脚本所在目录为根目录。
#### 更新报告输出规则
- 报告输出格式:输出md文档格式。
- 报告输出位置:输出到[AuxiliaryTool/ScriptTool/RemoteUpdate/reports]
- 报告命名规则:{服务器地址}_更新测试报告_{日期}.md。
- 报告编号规则:{服务器地址}-{日期}
## 规范文档
- 代码规范: `Docs/PRD/01规范文档/_PRD_规范文档_代码规范.md`
- 问题总结: `Docs/PRD/01规范文档/_PRD_问题总结_记录文档.md`
- 方法总结: `Docs/PRD/01规范文档/_PRD_方法总结_记录文档.md`
- 文档规范: `Docs/PRD/01规范文档/_PRD_规范文档_文档规范.md`
- 测试规范: `Docs/PRD/01规范文档/_PRD_规范文档_测试规范.md`
---
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论