Admin:部署最新版本 a4556b4 到生产服务器 #195

Closed
opened 2026-08-12 18:26:45 +08:00 by ila · 1 comment
Owner

基本信息

  • 类型:部署
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 Admin 四模块可用闭环
  • 阶段:生产发布

要解决什么

把当前最新已提交 Admin 基线 a4556b4(包含 #192、#193)构建并发布到生产服务器 185.216.248.75,通过 https://buy.833729.com 提供服务。生产当前运行 6ea45b7。

做什么 / 不做什么

  • 做:从固定提交 a4556b4 建立隔离干净工作树,避免本地未提交 Admin/Client 文件进入产物。
  • 做:固定 Go 1.23.0 执行 vet、test 和 Linux amd64 静态构建。
  • 做:确认没有运行中的顺运宝同步;发布前备份生产 MySQL,校验 gzip 和权限。
  • 做:上传独立 release,校验 SHA-256,复用稳定 config.yaml 与 data。
  • 做:原子切换 systemd;启动或健康检查失败时自动回退 6ea45b7。
  • 做:验证运行路径、端口、schema、日志、本机 HTTP 与公网 HTTPS。
  • 不做:不上传凭据和本地配置,不包含未提交文件,不执行真实同步、采集或采购。
  • 不做:不修改 Nginx、MySQL 权限或业务数据。

已确认实现方案

  1. 固定提交 a4556b4,通过临时 detached worktree 构建。
  2. 使用 GOTOOLCHAIN=go1.23.0 执行 go vet ./...、go test ./... -count=1,再以 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 构建。
  3. 再次确认 syb_sync_runs.status='running' 为 0。
  4. 使用生产业务账号执行单事务逻辑备份:--single-transaction --quick --no-tablespaces,启用管道失败检测,权限 600,执行 gzip -t。
  5. 上传到 /opt/cmautobuy/releases/a4556b4/ 并核对 SHA-256。
  6. 停止服务、原子切换稳定链接、启动并轮询本机登录页;失败自动切回部署前 release。
  7. 验证 systemd active/enabled、实际运行路径、127.0.0.1:18080、schema 版本、启动错误日志和公网登录页。

验收标准

  • 构建严格来自提交 a4556b4,不含工作区未提交文件。
  • 固定 Go 1.23.0 的 vet、test 和 Linux amd64 build 通过。
  • 切换前无运行中的顺运宝同步。
  • 数据库备份权限 600 且 gzip -t 通过。
  • 本地和服务器二进制 SHA-256 一致。
  • 当前 release 指向 a4556b4,上一 release 6ea45b7 保留可回退。
  • systemd active/enabled,监听预期本机端口,日志无迁移、自检、panic 或 fatal。
  • 本机根路径 303、登录页 200,公网 HTTPS 登录页从服务器和外部均��� 200。
  • 未上传凭据,未执行真实同步、采集或采购。

验证方式

本地固定 Go 1.23.0 全量 vet/test/build;服务器执行同步状态只读查询、mysqldump、gzip -t、sha256sum、systemctl、readlink、ss、schema 查询、journalctl 和 HTTP/HTTPS 健康检查。

风险和回退

  • 风险:部署重启中断同步。控制:切换前两次确认无 running 同步。
  • 风险:本地脏工作区进入产物。控制:固定提交的隔离 detached worktree。
  • 风险:新进程启动或 schema 自检失败。控制:自动回切 6ea45b7 并重启。
  • 回退:应用切回部署前 release;必要时由数据库管理员使用本次备份恢复。

实施结果

  • 生产部署代码基线:a4556b4。
  • 归档提交:13105fa。
  • 归档文档:docs/task/195-admin部署最新版本a4556b4.md。
  • 构建来自 detached 隔离工作树;主工作区未提交文件未进入产物。
  • 固定 Go 1.23.0 的 vet、全量 test、Linux amd64 静态 build 全部通过。
  • 二进制 SHA-256:558a419d366b135bc86af937be1b4cf9ffee07ce00f1736fbbe3372441ec5c68,本地与远端一致���
  • 发布前数据库备份:/opt/cmautobuy/backups/autobuy-before-195-20260812T102750Z.sql.gz,5,275,275 字节,权限 600,gzip 校验通过。
  • 三次切换前检查均确认运行中同步为 0。
  • 当前运行:/opt/cmautobuy/releases/a4556b4/cmautobuy-admin;上一版本 6ea45b7 保留。
  • systemd active/enabled;���听 127.0.0.1:18080;schema v13;启动错误日志计数 0。
  • 本机根路径 303、登录页 200;服务器和外部公网登录页均为 200。
  • 未执行真实顺运宝同步、采集或采购。

状态:待用户验收。

## 基本信息 - 类型:部署 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 阶段:生产发布 ## 要解决什么 把当前最新已提交 Admin 基线 `a4556b4`(包含 #192、#193)构建并发布到生产服务器 `185.216.248.75`,通过 `https://buy.833729.com` 提供服务。生产当前运行 `6ea45b7`。 ## 做什么 / 不做什么 - 做:从固定提交 `a4556b4` 建立隔离干净工作树,避免本地未提交 Admin/Client 文件进入产物。 - 做:固定 Go 1.23.0 执行 vet、test 和 Linux amd64 静态构建。 - 做:确认没有运行中的顺运宝同步;发布前备份生产 MySQL,校验 gzip 和权限。 - 做:上传独立 release,校验 SHA-256,复用稳定 `config.yaml` 与 `data`。 - 做:原子切换 systemd;启动或健康检查失败时自动回退 `6ea45b7`。 - 做:验证运行路径、端口、schema、日志、本机 HTTP 与公网 HTTPS。 - 不做:不上传凭据和本地配置,不包含未提交文件,不执行真实同步、采集或采购。 - 不做:不修改 Nginx、MySQL 权限或业务数据。 ## 已确认实现方案 1. 固定提交 `a4556b4`,通过临时 detached worktree 构建。 2. 使用 `GOTOOLCHAIN=go1.23.0` 执行 `go vet ./...`、`go test ./... -count=1`,再以 `GOOS=linux GOARCH=amd64 CGO_ENABLED=0` 构建。 3. 再次确认 `syb_sync_runs.status='running'` 为 0。 4. 使用生产业务账号执行单事务逻辑备份:`--single-transaction --quick --no-tablespaces`,启用管道失败检测,权限 600,执行 `gzip -t`。 5. 上传到 `/opt/cmautobuy/releases/a4556b4/` 并核对 SHA-256。 6. 停止服务、原子切换稳定链接、启动并轮询本机登录页;失败自动切回部署前 release。 7. 验证 systemd active/enabled、实际运行路径、`127.0.0.1:18080`、schema 版本、启动错误日志和公网登录页。 ## 验收标准 - [x] 构建严格来自提交 `a4556b4`,不含工作区未提交文件。 - [x] 固定 Go 1.23.0 的 vet、test 和 Linux amd64 build 通过。 - [x] 切换前无运行中的顺运宝同步。 - [x] 数据库备份权限 600 且 `gzip -t` 通过。 - [x] 本地和服务器二进制 SHA-256 一致。 - [x] 当前 release 指向 `a4556b4`,上一 release `6ea45b7` 保留可回退。 - [x] systemd active/enabled,监听预期本机端口,日志无迁移、自检、panic 或 fatal。 - [x] 本机根路径 303、登录页 200,公网 HTTPS 登录页从服务器和外部均��� 200。 - [x] 未上传凭据,未执行真实同步、采集或采购。 ## 验证方式 本地固定 Go 1.23.0 全量 vet/test/build;服务器执行同步状态只读查询、`mysqldump`、`gzip -t`、`sha256sum`、`systemctl`、`readlink`、`ss`、schema 查询、`journalctl` 和 HTTP/HTTPS 健康检查。 ## 风险和回退 - 风险:部署重启中断同步。控制:切换前两次确认无 running 同步。 - 风险:本地脏工作区进入产物。控制:固定提交的隔离 detached worktree。 - 风险:新进程启动或 schema 自检失败。控制:自动回切 `6ea45b7` 并重启。 - 回退:应用切回部署前 release;必要时由数据库管理员使用本次备份恢复。 ## 实施结果 - 生产部署代码基线:`a4556b4`。 - 归档提交:`13105fa`。 - 归档文档:`docs/task/195-admin部署最新版本a4556b4.md`。 - 构建来自 detached 隔离工作树;主工作区未提交文件未进入产物。 - 固定 Go 1.23.0 的 vet、全量 test、Linux amd64 静态 build 全部通过。 - 二进制 SHA-256:`558a419d366b135bc86af937be1b4cf9ffee07ce00f1736fbbe3372441ec5c68`,本地与远端一致��� - 发布前数据库备份:`/opt/cmautobuy/backups/autobuy-before-195-20260812T102750Z.sql.gz`,5,275,275 字节,权限 600,gzip 校验通过。 - 三次切换前检查均确认运行中同步为 0。 - 当前运行:`/opt/cmautobuy/releases/a4556b4/cmautobuy-admin`;上一版本 `6ea45b7` 保留。 - systemd active/enabled;���听 `127.0.0.1:18080`;schema v13;启动错误日志计数 0。 - 本机根路径 303、登录页 200;服务器和外部公网登录页均为 200。 - 未执行真实顺运宝同步、采集或采购。 状态:待用户验收。
Author
Owner

用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。

用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。
ila closed this issue 2026-08-13 15:56:36 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#195