Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录
切换导航
U
ubains-module-test
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
郑晓兵
ubains-module-test
Commits
c94171f4
提交
c94171f4
authored
6月 03, 2026
作者:
陈泽健
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(edit):调整自动化部署包的更新验证流程
上级
561f6ecc
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
104 行增加
和
44 行删除
+104
-44
x86_package_update.py
AuxiliaryTool/ScriptTool/RemoteUpdate/x86_package_update.py
+91
-31
_PRD_X86自动更新部署包版本_需求文档.md
Docs/PRD/自动更新部署包版本/_PRD_X86自动更新部署包版本_需求文档.md
+1
-0
_PRD_X86自动更新部署包版本_需求文档_计划执行.md
Docs/PRD/自动更新部署包版本/_PRD_X86自动更新部署包版本_需求文档_计划执行.md
+7
-7
_PRD_远程自动化部署_需求文档.md
Docs/PRD/远程自动化部署/_PRD_远程自动化部署_需求文档.md
+5
-6
没有找到文件。
AuxiliaryTool/ScriptTool/RemoteUpdate/x86_package_update.py
浏览文件 @
c94171f4
...
@@ -448,7 +448,62 @@ class X86PackageUpdate:
...
@@ -448,7 +448,62 @@ class X86PackageUpdate:
tar_size
=
self
.
_get_remote_file_size
(
self
.
test_ssh
,
remote_tmp_tar
)
tar_size
=
self
.
_get_remote_file_size
(
self
.
test_ssh
,
remote_tmp_tar
)
self
.
log
(
f
"服务包打包完成,大小: {self._format_size(tar_size)}"
)
self
.
log
(
f
"服务包打包完成,大小: {self._format_size(tar_size)}"
)
# 下载到本地临时目录
# 清理测试服务器上的临时文件
self
.
_exec_test_cmd
(
f
'rm -f "{remote_tmp_tar}"'
)
# 直接在测试服务器上通过SSH传输到打包服务器(避免本地中转)
build_tmp_tar
=
'/data/services_update.tar.gz'
self
.
_exec_build_cmd
(
f
'rm -f "{build_tmp_tar}"'
)
# 方式1:尝试服务器间直接传输(更快,不经过本地)
self
.
log
(
"正在通过服务器间直接传输..."
)
scp_cmd
=
(
f
'sshpass -p
\'
{self.build_server["password"]}
\'
'
f
'scp -o StrictHostKeyChecking=no -o ConnectTimeout=30 '
f
'"{remote_tmp_tar}" '
f
'{self.build_server["username"]}@{self.build_server["host"]}:{build_tmp_tar}'
)
# 先用tar管道方式直接传输(不需要sshpass)
pipe_cmd
=
(
f
'cd /data/services && tar -czf - {dirs_str} '
f
'| ssh -o StrictHostKeyChecking=no '
f
'{self.build_server["username"]}@{self.build_server["host"]} '
f
'
\'
cat > {build_tmp_tar}
\'
'
)
# 检查测试服务器到打包服务器的SSH连通性
test_ssh_cmd
=
(
f
'ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 '
f
'{self.build_server["username"]}@{self.build_server["host"]} '
f
'
\'
echo OK
\'
2>/dev/null'
)
exit_code
,
out
,
err
=
self
.
_exec_test_cmd
(
test_ssh_cmd
,
timeout
=
15
)
if
"OK"
in
out
:
# 服务器间SSH已互通,直接管道传输
self
.
log
(
"服务器间SSH互通,使用管道直接传输(无需本地中转)..."
)
# 清理之前的打包文件
self
.
_exec_test_cmd
(
f
'rm -f "{remote_tmp_tar}"'
)
# 直接管道传输
exit_code
,
out
,
err
=
self
.
_exec_test_cmd
(
pipe_cmd
,
timeout
=
3600
)
if
exit_code
==
0
:
self
.
log
(
"服务器间传输完成"
)
else
:
self
.
log
(
f
"管道传输失败: {err},回退到本地中转方式"
,
"WARN"
)
# 回退:重新打包并通过本地中转
exit_code
=
-
1
# 标记需要回退
else
:
exit_code
=
-
1
# 标记需要回退
self
.
log
(
"服务器间SSH未互通,使用本地中转方式"
,
"WARN"
)
# 回退方式:通过本地机器中转
if
exit_code
!=
0
:
# 确保测试服务器上有打包文件
test_size
=
self
.
_get_remote_file_size
(
self
.
test_ssh
,
remote_tmp_tar
)
if
test_size
==
0
:
self
.
log
(
"重新在测试服务器上打包..."
)
self
.
_exec_test_cmd
(
f
'cd /data/services && tar -czf "{remote_tmp_tar}" {dirs_str}'
)
local_tar
=
os
.
path
.
join
(
self
.
temp_dir
,
'services_update.tar.gz'
)
local_tar
=
os
.
path
.
join
(
self
.
temp_dir
,
'services_update.tar.gz'
)
self
.
log
(
"正在下载服务包到本地..."
)
self
.
log
(
"正在下载服务包到本地..."
)
try
:
try
:
...
@@ -460,8 +515,9 @@ class X86PackageUpdate:
...
@@ -460,8 +515,9 @@ class X86PackageUpdate:
self
.
_record_step
(
3
,
"测试服务器打包"
,
"失败"
,
msg
)
self
.
_record_step
(
3
,
"测试服务器打包"
,
"失败"
,
msg
)
return
False
return
False
# 上传到打包服务器
# 清理测试服务器临时文件(节省空间)
build_tmp_tar
=
'/tmp/services_update.tar.gz'
self
.
_exec_test_cmd
(
f
'rm -f "{remote_tmp_tar}"'
)
self
.
log
(
"正在上传服务包到打包服务器..."
)
self
.
log
(
"正在上传服务包到打包服务器..."
)
try
:
try
:
self
.
build_sftp
.
put
(
local_tar
,
build_tmp_tar
)
self
.
build_sftp
.
put
(
local_tar
,
build_tmp_tar
)
...
@@ -472,6 +528,10 @@ class X86PackageUpdate:
...
@@ -472,6 +528,10 @@ class X86PackageUpdate:
self
.
_record_step
(
3
,
"测试服务器打包"
,
"失败"
,
msg
)
self
.
_record_step
(
3
,
"测试服务器打包"
,
"失败"
,
msg
)
return
False
return
False
# 清理本地临时文件
if
os
.
path
.
exists
(
local_tar
):
os
.
remove
(
local_tar
)
# 清理测试服务器临时文件
# 清理测试服务器临时文件
self
.
_exec_test_cmd
(
f
'rm -f "{remote_tmp_tar}"'
)
self
.
_exec_test_cmd
(
f
'rm -f "{remote_tmp_tar}"'
)
# 清理本地临时文件
# 清理本地临时文件
...
@@ -492,8 +552,8 @@ class X86PackageUpdate:
...
@@ -492,8 +552,8 @@ class X86PackageUpdate:
self
.
log
(
"步骤4:解压测试服务包"
)
self
.
log
(
"步骤4:解压测试服务包"
)
self
.
log
(
"="
*
50
)
self
.
log
(
"="
*
50
)
build_tmp_tar
=
'/
tmp
/services_update.tar.gz'
build_tmp_tar
=
'/
data
/services_update.tar.gz'
extract_dir
=
'/
tmp
/services_update'
extract_dir
=
'/
data
/services_update'
# 创建解压目录
# 创建解压目录
self
.
_exec_build_cmd
(
f
'rm -rf "{extract_dir}"'
)
self
.
_exec_build_cmd
(
f
'rm -rf "{extract_dir}"'
)
...
@@ -527,7 +587,7 @@ class X86PackageUpdate:
...
@@ -527,7 +587,7 @@ class X86PackageUpdate:
self
.
log
(
"="
*
50
)
self
.
log
(
"="
*
50
)
services_base
=
'/data/offline_auto_unifiedPlatform/data/services'
services_base
=
'/data/offline_auto_unifiedPlatform/data/services'
update_base
=
'/
tmp
/services_update/services'
update_base
=
'/
data
/services_update/services'
all_success
=
True
all_success
=
True
# ---------- 更新前端服务 ----------
# ---------- 更新前端服务 ----------
...
@@ -548,7 +608,7 @@ class X86PackageUpdate:
...
@@ -548,7 +608,7 @@ class X86PackageUpdate:
# 保存原始 config.json
# 保存原始 config.json
config_saved
=
False
config_saved
=
False
config_backup
=
f
"/
tmp
/config_backup_{svc_name.replace(' ', '_')}.json"
config_backup
=
f
"/
data
/config_backup_{svc_name.replace(' ', '_')}.json"
exit_code
,
_
,
_
=
self
.
_exec_build_cmd
(
exit_code
,
_
,
_
=
self
.
_exec_build_cmd
(
f
'cp "{config_file}" "{config_backup}" 2>/dev/null && echo "SAVED"'
f
'cp "{config_file}" "{config_backup}" 2>/dev/null && echo "SAVED"'
)
)
...
@@ -663,7 +723,7 @@ class X86PackageUpdate:
...
@@ -663,7 +723,7 @@ class X86PackageUpdate:
# 保存原始 settingbus.conf
# 保存原始 settingbus.conf
config_saved
=
False
config_saved
=
False
config_backup
=
(
config_backup
=
(
f
"/
tmp
/settingbus_backup_{svc_name.replace(' ', '_')}.conf"
f
"/
data
/settingbus_backup_{svc_name.replace(' ', '_')}.conf"
)
)
exit_code
,
_
,
_
=
self
.
_exec_build_cmd
(
exit_code
,
_
,
_
=
self
.
_exec_build_cmd
(
f
'cp "{config_file}" "{config_backup}" 2>/dev/null '
f
'cp "{config_file}" "{config_backup}" 2>/dev/null '
...
@@ -723,7 +783,7 @@ class X86PackageUpdate:
...
@@ -723,7 +783,7 @@ class X86PackageUpdate:
self
.
log
(
f
" {svc_name} 更新成功"
)
self
.
log
(
f
" {svc_name} 更新成功"
)
# 清理解压的临时目录
# 清理解压的临时目录
self
.
_exec_build_cmd
(
'rm -rf /
tmp
/services_update'
)
self
.
_exec_build_cmd
(
'rm -rf /
data
/services_update'
)
self
.
log
(
"已清理临时解压目录"
)
self
.
log
(
"已清理临时解压目录"
)
self
.
_record_step
(
self
.
_record_step
(
...
@@ -863,11 +923,11 @@ class X86PackageUpdate:
...
@@ -863,11 +923,11 @@ class X86PackageUpdate:
f
'rm -f "{deploy_dir}/{package_name}.tar.gz" '
f
'rm -f "{deploy_dir}/{package_name}.tar.gz" '
f
'"{deploy_dir}/{package_name}.tar.gz.md5"'
f
'"{deploy_dir}/{package_name}.tar.gz.md5"'
)
)
self
.
_exec_build_cmd
(
'rm -rf /
tmp
/services_update'
)
self
.
_exec_build_cmd
(
'rm -rf /
data
/services_update'
)
# 清理打包服务器上的配置备份文件
# 清理打包服务器上的配置备份文件
self
.
_exec_build_cmd
(
'rm -f /
tmp
/config_backup_*.json'
)
self
.
_exec_build_cmd
(
'rm -f /
data
/config_backup_*.json'
)
self
.
_exec_build_cmd
(
'rm -f /
tmp
/settingbus_backup_*.conf'
)
self
.
_exec_build_cmd
(
'rm -f /
data
/settingbus_backup_*.conf'
)
# 清理本地临时目录
# 清理本地临时目录
self
.
log
(
"清理本地临时文件..."
)
self
.
log
(
"清理本地临时文件..."
)
...
...
Docs/PRD/自动更新部署包版本/_PRD_X86自动更新部署包版本_需求文档.md
浏览文件 @
c94171f4
...
@@ -169,6 +169,7 @@
...
@@ -169,6 +169,7 @@
8.
拷贝至网盘目录:
[
Z:\发布版本\03服务器部署\15新统一平台\X86部署包\全量版\版本更新-待验证
]
8.
拷贝至网盘目录:
[
Z:\发布版本\03服务器部署\15新统一平台\X86部署包\全量版\版本更新-待验证
]
9.
清理打包服务器上的临时文件。
9.
清理打包服务器上的临时文件。
10.
生成报告文件。
10.
生成报告文件。
11.
根据
[
Docs/PRD/远程自动化部署/_PRD_远程自动化部署_需求文档.md
]
执行部署操作
## 异常处理
## 异常处理
-
在服务包覆盖过程中如果覆盖失败(如中断),立即停止本次更新操作,输出失败的文件名和失败原因。
-
在服务包覆盖过程中如果覆盖失败(如中断),立即停止本次更新操作,输出失败的文件名和失败原因。
...
...
Docs/PRD/自动更新部署包版本/_PRD_X86自动更新部署包版本_需求文档_计划执行.md
浏览文件 @
c94171f4
# 计划执行_X86自动更新部署包版本
# 计划执行_X86自动更新部署包版本
> 版本:V1.
0
> 版本:V1.
1
> 创建日期:2026-06-03
> 创建日期:2026-06-03
> 基于文档:`_PRD_X86自动更新部署包版本_需求文档.md`
> 基于文档:`_PRD_X86自动更新部署包版本_需求文档.md`
> 交付物:
> 交付物:
...
@@ -334,13 +334,13 @@ python x86_package_update.py --help
...
@@ -334,13 +334,13 @@ python x86_package_update.py --help
| 阶段 | 状态 | 完成时间 | 备注 |
| 阶段 | 状态 | 完成时间 | 备注 |
|------|------|----------|------|
|------|------|----------|------|
| 阶段一:基础框架与配置 |
⬜ 待执行 | |
|
| 阶段一:基础框架与配置 |
✅ 已完成 | 2026-06-03 | config.json + 主脚本框架
|
| 阶段二:网盘下载与解压 |
⬜ 待执行 | |
|
| 阶段二:网盘下载与解压 |
✅ 已完成 | 2026-06-03 | MD5校验通过,8.67GB上传+解压成功
|
| 阶段三:测试服务器取包 |
⬜ 待执行 | |
|
| 阶段三:测试服务器取包 |
🔄 测试中 | | 修复auth路径 auth-sso-aut→auth-sso-auth,增加目录存在性检查
|
| 阶段四:服务替换与配置保留 | ⬜ 待执行 | | |
| 阶段四:服务替换与配置保留 | ⬜ 待执行 | | |
| 阶段五:打包上传与清理 | ⬜ 待执行 | | |
| 阶段五:打包上传与清理 | ⬜ 待执行 | | |
| 阶段六:报告生成 | ⬜ 待执行 | | |
| 阶段六:报告生成 | ⬜ 待执行 | | |
| 完整流程测试 |
⬜ 待执行 | |
|
| 完整流程测试 |
🔄 测试中 | | 步骤1-2已验证通过
|
---
---
...
@@ -370,7 +370,7 @@ python x86_package_update.py --help
...
@@ -370,7 +370,7 @@ python x86_package_update.py --help
| 序号 | 服务名称 | 相对路径 | 文件名 |
| 序号 | 服务名称 | 相对路径 | 文件名 |
|------|---------|---------|--------|
|------|---------|---------|--------|
| 1 | auth包 | api/auth/auth-sso-aut | ubains-auth.jar |
| 1 | auth包 | api/auth/auth-sso-aut
h
| ubains-auth.jar |
| 2 | gatway包 | api/auth/auth-sso-gatway | ubains-gateway.jar |
| 2 | gatway包 | api/auth/auth-sso-gatway | ubains-gateway.jar |
| 3 | system包 | api/auth/auth-sso-system | ubains-modules-system.jar |
| 3 | system包 | api/auth/auth-sso-system | ubains-modules-system.jar |
| 4 | java2.0包 | api/java-meeting/java-meeting2.0 | ubains-meeting-inner-api-1.0-SNAPSHOT.jar |
| 4 | java2.0包 | api/java-meeting/java-meeting2.0 | ubains-meeting-inner-api-1.0-SNAPSHOT.jar |
...
@@ -394,4 +394,4 @@ python x86_package_update.py --help
...
@@ -394,4 +394,4 @@ python x86_package_update.py --help
---
---
*文档创建日期:2026-06-03*
*文档创建日期:2026-06-03*
*文档状态:
待执行
*
*文档状态:
测试中
*
Docs/PRD/远程自动化部署/_PRD_远程自动化部署_需求文档.md
浏览文件 @
c94171f4
...
@@ -3,8 +3,8 @@
...
@@ -3,8 +3,8 @@
### 部署脚本
### 部署脚本
-
AuxiliaryTool/ScriptTool/RemoteDeploy
-
AuxiliaryTool/ScriptTool/RemoteDeploy
### 部署包路径
### 部署包路径
-
ARM架构:
已上传至对应服务器
。
-
ARM架构:
[
Z:\发布版本\03服务器部署\15新统一平台\ARM部署包\全量版\版本更新-待验证
]
,从这里下载到服务器的/data/目录下
。
-
X86架构:
已上传至对应服务器
。
-
X86架构:
[
Z:\发布版本\03服务器部署\15新统一平台\X86部署包\全量版\版本更新-待验证
]
,从这里下载到服务器的/data/目录下
。
### 目标服务器
### 目标服务器
-
X86架构-欧拉服务器:192.168.5.52 root Ubains@123
-
X86架构-欧拉服务器:192.168.5.52 root Ubains@123
...
@@ -12,7 +12,6 @@
...
@@ -12,7 +12,6 @@
-
ARM架构-Ubuntu服务器:192.168.9.76 admin Ubains@123 切换root权限需执行
`sudo -s`
,密码也是Ubains@123
-
ARM架构-Ubuntu服务器:192.168.9.76 admin Ubains@123 切换root权限需执行
`sudo -s`
,密码也是Ubains@123
-
ARM架构-麒麟V10服务器:192.168.9.83 root Ubains@123(先不执行部署)
-
ARM架构-麒麟V10服务器:192.168.9.83 root Ubains@123(先不执行部署)
### 部署文档
### 部署文档
-
X86部署文档路径:"Docs/PRD/远程自动化部署/X86架构_新统一平台自动化部署操作指导.md"
-
X86部署文档路径:"Docs/PRD/远程自动化部署/X86架构_新统一平台自动化部署操作指导.md"
-
ARM部署文档路径:"Docs/PRD/远程自动化部署/ARM架构_新统一平台自动化部署操作指导.md"
-
ARM部署文档路径:"Docs/PRD/远程自动化部署/ARM架构_新统一平台自动化部署操作指导.md"
...
@@ -68,9 +67,9 @@
...
@@ -68,9 +67,9 @@
-
部署包命名规则:
-
部署包命名规则:
-
X86架构:
`offline_auto_unifiedPlatform.tar.gz`
、
`offline_auto_unifiedPlatform.tar.gz.md5`
-
X86架构:
`offline_auto_unifiedPlatform.tar.gz`
、
`offline_auto_unifiedPlatform.tar.gz.md5`
-
ARM架构:
`arm_offline_auto_unifiedPlatform.tar.gz`
、
`arm_offline_auto_unifiedPlatform.tar.gz.md5`
-
ARM架构:
`arm_offline_auto_unifiedPlatform.tar.gz`
、
`arm_offline_auto_unifiedPlatform.tar.gz.md5`
-
部署包输出
到本地
:
-
部署包输出:
-
X86架构:
`
E:\自动化部署\X86-5.52\offline_auto_unifiedPlatform.tar.gz`
、
`E:\自动化部署\X86-5.52\offline_auto_unifiedPlatform.tar.gz.md5
`
-
X86架构:
`
Z:\发布版本\03服务器部署\15新统一平台\X86部署包\全量版
`
-
ARM架构:
`
E:\自动化部署\ARM-9.75\arm_offline_auto_unifiedPlatform.tar.gz`
、
`E:\自动化部署\ARM-9.75\arm_offline_auto_unifiedPlatform.tar.gz.md5
`
-
ARM架构:
`
Z:\发布版本\03服务器部署\15新统一平台\ARM部署包\全量版
`
## 验收要求
## 验收要求
1.
自动化部署完成后检查容器状态是否正常,核查容器日志是否正确。
1.
自动化部署完成后检查容器状态是否正常,核查容器日志是否正确。
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论