升级管理
This commit is contained in:
@@ -32,6 +32,317 @@ TMS 负责:
|
||||
- 直参版介质解压到厂商约定目录
|
||||
- 数据库凭据和 RabbitMQ 管理员凭据
|
||||
|
||||
## 2.1 核心原则:先部署预置,再执行初始化
|
||||
|
||||
当前 CISD 初始化功能不是完整替代厂商部署手册,而是建立在“基础环境和介质已就绪”的前提上执行客户化步骤。
|
||||
|
||||
因此现场应严格分成两个阶段:
|
||||
|
||||
### 第一阶段:部署/出厂预置阶段
|
||||
|
||||
由运维或出厂人员提前完成,目标是把机器准备成“可接受初始化”的基线环境。
|
||||
|
||||
### 第二阶段:CISD 初始化阶段
|
||||
|
||||
由 TMS 根据前端输入的客户化参数执行,目标是完成机构号、节点地址、MQ/TLQ、数据库导入、应用配置、WEB 发布和启动验收。
|
||||
|
||||
如果第一阶段未完成,第二阶段不应直接试跑。
|
||||
|
||||
## 2.2 部署阶段必须提前完成的步骤
|
||||
|
||||
以下内容必须在部署阶段完成,不应再依赖 `/api/v1/init/**` 初始化接口去补做。
|
||||
|
||||
### 2.2.1 操作系统与基础目录
|
||||
|
||||
需要提前完成:
|
||||
- 系统用户、用户组创建
|
||||
- 标准收发器运行目录创建
|
||||
- 目录权限和属主设置
|
||||
- `/home/cemp4i`、`/home/tms`、`/home/tlq` 等目录存在且可访问
|
||||
|
||||
这类动作属于一次性环境准备,不属于客户化初始化。
|
||||
|
||||
### 2.2.2 基础软件安装
|
||||
|
||||
需要提前完成:
|
||||
- JDK 安装
|
||||
- nginx 安装
|
||||
- RabbitMQ 安装
|
||||
- TLQ 基础软件安装
|
||||
- TiDB/MySQL 客户端可用
|
||||
- `rabbitmqctl`、`rabbitmqadmin`、`mysql`、`unzip` 等命令可用
|
||||
|
||||
初始化阶段默认依赖这些命令和软件已经存在。
|
||||
|
||||
### 2.2.3 标准收发器介质上传与解压
|
||||
|
||||
需要提前完成:
|
||||
- 企业版 / 间参版标准收发器介质解压到 `/home/cemp4i`
|
||||
- 直参版介质解压到厂商约定目录
|
||||
- `cpconfig.cfg`
|
||||
- `cpackage/toolsh/*.sh`
|
||||
- `cpackage/rabq/*.sh`
|
||||
- `cpackage/software/nginx.conf`
|
||||
- `cpackage/front/front.zip`
|
||||
- SQL 模板和 JAR 介质文件存在
|
||||
|
||||
当前初始化流程假定这些文件已经存在,不负责解压标准介质。
|
||||
|
||||
### 2.2.4 平台级凭据预置
|
||||
|
||||
需要提前完成:
|
||||
- 数据库导库账号/密码
|
||||
- RabbitMQ 管理员账号/密码
|
||||
- 其他平台级敏感配置
|
||||
|
||||
这些凭据不属于前端输入的客户化参数,建议通过:
|
||||
- 环境变量
|
||||
- 独立受保护配置文件
|
||||
- 现场预置脚本
|
||||
|
||||
进行管理。
|
||||
|
||||
### 2.2.5 防火墙、服务注册和开机自启
|
||||
|
||||
需要提前完成:
|
||||
- 防火墙端口放通
|
||||
- RabbitMQ/nginx 服务注册
|
||||
- 必要的开机自启设置
|
||||
|
||||
这类动作属于环境级配置,不应放在初始化阶段重复执行。
|
||||
|
||||
### 2.2.6 标准收发器部署文档中应提前做的脚本
|
||||
|
||||
结合标准收发器部署文档和当前 TMS 初始化边界,以下脚本应视为部署阶段脚本,不纳入初始化主流程:
|
||||
|
||||
- `setpd.sh`
|
||||
- `opencport.sh`
|
||||
- `install_newpackage.sh`
|
||||
- `setrabqstart.sh`
|
||||
- `setxsd.sh`
|
||||
- `setngservice.sh`
|
||||
- `pongx.sh`
|
||||
|
||||
这些脚本覆盖的通常是:
|
||||
- 用户与目录准备
|
||||
- 端口开放
|
||||
- RabbitMQ 编译/安装/服务化
|
||||
- nginx 安装/服务化
|
||||
- 信创依赖和基础环境处理
|
||||
|
||||
### 2.2.7 厂商脚本与部署阶段的对应关系
|
||||
|
||||
下表用于帮助现场快速判断:哪些脚本应在部署阶段提前执行,哪些不应再放到初始化接口中执行。
|
||||
|
||||
| 脚本 | 建议阶段 | 说明 |
|
||||
|---|---|---|
|
||||
| `setpd.sh` | 部署阶段 | 用户、目录、权限等基础准备 |
|
||||
| `opencport.sh` | 部署阶段 | 端口开放,属于系统环境配置 |
|
||||
| `install_newpackage.sh` | 部署阶段 | RabbitMQ/OTP 安装与编译 |
|
||||
| `setrabqstart.sh` | 部署阶段 | RabbitMQ 服务启动/服务化准备 |
|
||||
| `setxsd.sh` | 部署阶段 | 信创/环境依赖准备 |
|
||||
| `setngservice.sh` | 部署阶段 | nginx 服务注册/服务化 |
|
||||
| `pongx.sh` | 部署阶段 | 基础环境处理脚本 |
|
||||
| `setup_nodeps.sh` | 部署阶段 | 基础无依赖环境准备 |
|
||||
| `setsuseunixodbc.sh` | 部署阶段 | ODBC/基础运行依赖准备 |
|
||||
|
||||
## 2.3 标准版初始化阶段执行的步骤
|
||||
|
||||
以下内容属于客户化初始化,保留在 `/api/v1/init/**` 流程中执行。
|
||||
|
||||
### 2.3.1 配置渲染
|
||||
|
||||
包括:
|
||||
- `cpconfig.cfg` 渲染
|
||||
- 机构号、节点地址、组织名称等客户化字段写入
|
||||
|
||||
### 2.3.2 license 和输入文件处理
|
||||
|
||||
包括:
|
||||
- 收发器 license 上传
|
||||
- TLQ license / 配置包上传
|
||||
- CFMQ 配置上传
|
||||
- 通过 `fileId` 暂存并按目标路径落位
|
||||
|
||||
### 2.3.3 MQ/TLQ 客户化初始化
|
||||
|
||||
包括:
|
||||
- `SET_RABBITMQ`
|
||||
- `SET_TLQ`
|
||||
- `TLQ_CONF_APPLY`
|
||||
- RabbitMQ 通道账号和队列初始化
|
||||
|
||||
说明:
|
||||
- 标准版 RabbitMQ 用户/队列初始化是客户化动作
|
||||
- 但 RabbitMQ 软件本体安装、服务注册必须提前完成
|
||||
|
||||
### 2.3.4 数据库初始化
|
||||
|
||||
包括:
|
||||
- `DB_RENDER`
|
||||
- `DB_APPLY`
|
||||
|
||||
说明:
|
||||
- 当前 TMS 负责渲染 SQL 和触发导库命令
|
||||
- 但数据库客户端可用、导库凭据可用,必须由部署阶段保证
|
||||
|
||||
### 2.3.5 应用、nginx 和 WEB 客户化
|
||||
|
||||
包括:
|
||||
- `DEPLOY_RECEIVER`
|
||||
- `APP_MQ_CREDENTIALS_APPLY`
|
||||
- `NGINX_CONFIG_APPLY`
|
||||
- `WEB_CONFIG_APPLY`
|
||||
|
||||
说明:
|
||||
- 这些步骤处理的是客户化配置和发布
|
||||
- 不是安装 nginx 或解压标准介质
|
||||
|
||||
### 2.3.6 启动和校验
|
||||
|
||||
包括:
|
||||
- `START_CMSP_CMTP`
|
||||
- `START_NGINX`
|
||||
- `POST_CHECK`
|
||||
- `VERIFY`
|
||||
|
||||
说明:
|
||||
- 当前初始化阶段负责启动和验收
|
||||
- 但对应启动脚本、停止脚本、运行用户和目标路径需要提前准备好
|
||||
|
||||
### 2.3.7 厂商脚本与初始化阶段的对应关系
|
||||
|
||||
下表用于说明:哪些厂商脚本仍在初始化阶段使用,哪些脚本已经被当前 TMS 内置逻辑替代。
|
||||
|
||||
| 脚本/能力 | 当前阶段 | 当前处理方式 |
|
||||
|---|---|---|
|
||||
| `setfraq.sh` | 初始化阶段 | 仍由 TMS 调用,用于切换标准版 `RABBITMQ` 模式 |
|
||||
| `setftq.sh` | 初始化阶段 | 仍由 TMS 调用,用于切换 `TLQ` 或 `RABBITMQ_TLQ` 模式 |
|
||||
| `settlq.sh` | 初始化阶段 | 仍由 TMS 调用,用于落位和替换 TLQ 配置 |
|
||||
| `setuprabq.sh` | 初始化阶段 | 由 TMS staging 后执行,不直接污染源脚本 |
|
||||
| `addrabq_R_01.sh` / `addrabq_R_02.sh` | 初始化阶段 | 由 TMS staging 后执行,按节点选择 |
|
||||
| `setsql.sh` | 初始化阶段 | 已不再作为主导入口;当前改为 `DB_RENDER + DB_APPLY` |
|
||||
| `setsptp.sh` | 初始化阶段 | 仍由 TMS 调用,用于标准收发器应用部署 |
|
||||
| `setweb.sh` | 初始化阶段 | 当前由 TMS 内置 `WEB_CONFIG_APPLY` 替代 |
|
||||
| `setngx.sh` | 初始化阶段 | 当前由 TMS 内置 `NGINX_CONFIG_APPLY` 替代 |
|
||||
|
||||
需要注意:
|
||||
- `setweb.sh` 和 `setngx.sh` 所代表的“WEB 发布”和“nginx 配置发布”仍属于初始化阶段动作
|
||||
- 只是当前代码不再直接执行这两个脚本,而是由 TMS 内置逻辑完成
|
||||
|
||||
## 2.4 分版本预置清单
|
||||
|
||||
本节在通用边界之外,再按版本给出一份现场可直接对照的清单,帮助运维快速判断:
|
||||
- 当前设备属于哪个版本
|
||||
- 初始化前必须先准备好哪些内容
|
||||
- 初始化阶段还会继续执行哪些客户化动作
|
||||
|
||||
### 2.4.1 企业版预置清单
|
||||
|
||||
适用范围:
|
||||
- `ENTERPRISE + RABBITMQ`
|
||||
- `ENTERPRISE + TLQ`
|
||||
|
||||
部署阶段必须完成:
|
||||
- 标准版介质已解压到 `/home/cemp4i`
|
||||
- `/home/cemp4i/cpconfig.cfg`、`/home/cemp4i/cpackage/toolsh/*.sh`、`/home/cemp4i/cpackage/sql_script/*`、`/home/cemp4i/cpackage/front/front.zip` 已存在
|
||||
- JDK、nginx、RabbitMQ、TLQ、数据库客户端已安装
|
||||
- `/home/tms`、`/home/cemp4i`、`/home/tlq` 目录及权限已准备
|
||||
- 数据库导库凭据、RabbitMQ 管理员凭据已预置
|
||||
- `standard-db-apply-command`、`standard-app-start-command`、`standard-nginx-start-command`、`standard-post-check-command` 对应脚本已部署
|
||||
|
||||
按支持方式补充要求:
|
||||
|
||||
| 支持方式 | 部署前额外要求 | 初始化阶段仍会执行 |
|
||||
|---|---|---|
|
||||
| `RABBITMQ` | RabbitMQ 服务可用,`rabbitmqctl`、`rabbitmqadmin` 可执行 | `SET_RABBITMQ`、RabbitMQ 用户和队列初始化、应用 MQ 账号写回 |
|
||||
| `TLQ` | TLQ 基础软件和目录可用,`/home/tlq` 可写 | `SET_TLQ`、`TLQ_CONF_APPLY`、TLQ 配置包落位 |
|
||||
|
||||
企业版初始化阶段不会补做:
|
||||
- RabbitMQ/TLQ 软件安装
|
||||
- nginx 安装和服务注册
|
||||
- 数据库账号创建
|
||||
- 标准介质解压
|
||||
|
||||
### 2.4.2 间参版预置清单
|
||||
|
||||
适用范围:
|
||||
- `INDIRECT + RABBITMQ`
|
||||
- `INDIRECT + RABBITMQ_TLQ`
|
||||
|
||||
部署阶段必须完成:
|
||||
- 标准版介质已解压到 `/home/cemp4i`
|
||||
- 间参版对应的 `setsptp.sh`、`setfraq.sh`、`setftq.sh`、`settlq.sh`、RabbitMQ 脚本、SQL 模板已齐备
|
||||
- JDK、nginx、RabbitMQ、TLQ、数据库客户端已安装
|
||||
- `/home/tms`、`/home/cemp4i`、`/home/tlq` 目录及权限已准备
|
||||
- 数据库导库凭据、RabbitMQ 管理员凭据已预置
|
||||
- TMS 所依赖的标准初始化辅助脚本已部署到 `/home/tms/bin`
|
||||
|
||||
按支持方式补充要求:
|
||||
|
||||
| 支持方式 | 部署前额外要求 | 初始化阶段仍会执行 |
|
||||
|---|---|---|
|
||||
| `RABBITMQ` | RabbitMQ 服务可用 | `SET_RABBITMQ`、RabbitMQ 用户和队列初始化、应用 MQ 账号写回 |
|
||||
| `RABBITMQ_TLQ` | RabbitMQ 和 TLQ 都要提前可用 | `SET_TLQ`、`TLQ_CONF_APPLY`,同时仍会执行 RabbitMQ 用户和队列初始化 |
|
||||
|
||||
需要特别说明:
|
||||
- 间参版不存在“纯 TLQ”初始化模式
|
||||
- `RABBITMQ_TLQ` 不是替代 RabbitMQ,而是 RabbitMQ 与 TLQ 共存
|
||||
- 因此如果现场只准备了 TLQ、没有准备 RabbitMQ,间参版 `RABBITMQ_TLQ` 初始化仍会失败
|
||||
|
||||
### 2.4.3 轻量直参版预置清单
|
||||
|
||||
适用范围:
|
||||
- `DIRECT + RABBITMQ_TLQ`
|
||||
- `DIRECT + RABBITMQ_CFMQ`
|
||||
|
||||
部署阶段必须完成:
|
||||
- 直参版介质已按厂商要求解压到约定目录
|
||||
- 直参版 `cpconfig.cfg` 已在厂商约定位置存在
|
||||
- 直参版数据库脚本目录、TLQ/CFMQ 相关目录、签名服务依赖目录已存在
|
||||
- JDK、RabbitMQ、TLQ 或 CFMQ、数据库客户端已安装
|
||||
- 数据库导库凭据、RabbitMQ 管理员凭据已预置
|
||||
- 直参版初始化依赖的目标路径具备写权限
|
||||
|
||||
按支持方式补充要求:
|
||||
|
||||
| 支持方式 | 部署前额外要求 | 初始化阶段仍会执行 |
|
||||
|---|---|---|
|
||||
| `RABBITMQ_TLQ` | RabbitMQ 与 TLQ 运行环境都已就绪 | `MQ_USER_APPLY`、`DB_INIT`、`TLQ_INIT_CFG` |
|
||||
| `RABBITMQ_CFMQ` | RabbitMQ 与 CFMQ 运行环境都已就绪 | `MQ_USER_APPLY`、`DB_INIT`、`CFMQ_APPLY` |
|
||||
|
||||
直参版与标准版的差异:
|
||||
- 不走标准版 `/home/cemp4i/cpackage/toolsh/*.sh` 主链
|
||||
- 不走标准版 `DB_RENDER + DB_APPLY`
|
||||
- 不走标准版 `WEB_CONFIG_APPLY`、`NGINX_CONFIG_APPLY`
|
||||
- 初始化更依赖直参版厂商目录结构和配置文件落位
|
||||
|
||||
### 2.4.4 现场使用建议
|
||||
|
||||
现场可以按以下顺序判断:
|
||||
1. 先看设备预制版本是 `ENTERPRISE`、`INDIRECT` 还是 `DIRECT`
|
||||
2. 再看该版本下的支持方式是 `RABBITMQ`、`TLQ`、`RABBITMQ_TLQ` 还是 `RABBITMQ_CFMQ`
|
||||
3. 先完成本节对应版本的预置项
|
||||
4. 再进入 `/api/v1/init/template -> /preview -> /tasks -> /execute` 初始化流程
|
||||
|
||||
如果当前版本对应的预置项没有完成,不要直接尝试执行初始化任务。
|
||||
|
||||
## 2.5 不应再由初始化阶段执行的内容
|
||||
|
||||
为了避免把“环境搭建”与“客户化初始化”混在一起,以下动作不应再由初始化阶段重复承担:
|
||||
|
||||
- 创建系统用户和用户组
|
||||
- 批量创建基础目录
|
||||
- 安装或编译 RabbitMQ
|
||||
- 安装或编译 nginx
|
||||
- 开放系统端口
|
||||
- 解压标准收发器完整介质
|
||||
- 创建数据库导库账号
|
||||
- 创建 RabbitMQ 管理员账号
|
||||
- 注册 systemd / rc.local 服务
|
||||
|
||||
这些动作应在出厂或部署阶段完成。
|
||||
|
||||
## 3. 环境要求
|
||||
|
||||
### 3.1 操作系统
|
||||
@@ -391,9 +702,52 @@ PRODUCT_TYPE=ENTERPRISE /Users/waner/Work/CISD/文档/tms-framework/scripts/cisd
|
||||
- 标准版基础文件是否存在
|
||||
- RabbitMQ 工具是否可用
|
||||
- 直参版场景下的脚本目录是否存在
|
||||
- 标准介质与初始化依赖是否已经完成预置
|
||||
|
||||
建议在首次联调前执行一次。
|
||||
|
||||
## 11.1 现场建议的执行顺序
|
||||
|
||||
建议按以下顺序实施:
|
||||
|
||||
### 步骤 1:完成部署阶段预置
|
||||
|
||||
至少确认:
|
||||
- 基础软件已安装
|
||||
- 标准介质已解压
|
||||
- 运行目录和用户已准备
|
||||
- 平台级凭据已准备
|
||||
- `/home/tms` 已部署完毕
|
||||
|
||||
### 步骤 2:执行本机预检查
|
||||
|
||||
执行:
|
||||
|
||||
```bash
|
||||
PRODUCT_TYPE=ENTERPRISE /Users/waner/Work/CISD/文档/tms-framework/scripts/cisd_init_precheck.sh
|
||||
```
|
||||
|
||||
或按实际产品类型设置:
|
||||
- `ENTERPRISE`
|
||||
- `INDIRECT`
|
||||
- `DIRECT`
|
||||
|
||||
### 步骤 3:启动 TMS
|
||||
|
||||
执行:
|
||||
|
||||
```bash
|
||||
/home/tms/scripts/tms.sh start
|
||||
```
|
||||
|
||||
### 步骤 4:通过前端或接口执行初始化
|
||||
|
||||
在确认预置无误后,再执行:
|
||||
- 文件上传
|
||||
- 初始化预检
|
||||
- 创建初始化任务
|
||||
- 执行初始化任务
|
||||
|
||||
## 12. 初始化运行期目录与日志
|
||||
|
||||
### 12.1 初始化步骤日志
|
||||
|
||||
Reference in New Issue
Block a user