feat:CISD初始化
This commit is contained in:
@@ -2,7 +2,7 @@ spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://127.0.0.1:4000/tms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
|
||||
username: root
|
||||
password: root
|
||||
password: Sunyard123
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
mybatis-plus:
|
||||
|
||||
@@ -1,41 +1,133 @@
|
||||
spring:
|
||||
application:
|
||||
# Spring 应用名;用于日志、注册中心标识等。
|
||||
name: tms-framework
|
||||
profiles:
|
||||
# 默认激活环境;可通过 --spring.profiles.active=prod 覆盖。
|
||||
active: dev
|
||||
|
||||
server:
|
||||
# TMS HTTP 服务监听端口。
|
||||
port: 8080
|
||||
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
# Actuator 对外暴露端点列表。
|
||||
include: health,info,metrics
|
||||
endpoint:
|
||||
health:
|
||||
# 健康检查返回详细信息策略:always/when-authorized/never。
|
||||
show-details: always
|
||||
|
||||
springdoc:
|
||||
api-docs:
|
||||
# 是否启用 OpenAPI JSON 文档输出。
|
||||
enabled: true
|
||||
# OpenAPI 文档访问路径。
|
||||
path: /v3/api-docs
|
||||
swagger-ui:
|
||||
# 是否启用 Swagger UI 页面。
|
||||
enabled: true
|
||||
# Swagger UI 页面路径。
|
||||
path: /swagger-ui.html
|
||||
# 标签排序方式(alpha: 字母序)。
|
||||
tags-sorter: alpha
|
||||
# 接口排序方式(alpha: 字母序)。
|
||||
operations-sorter: alpha
|
||||
|
||||
tms:
|
||||
init:
|
||||
executor:
|
||||
# 初始化执行模式:SIMULATE(仅模拟,不执行外部命令) / LOCAL(本机执行脚本命令)。
|
||||
mode: ${TMS_INIT_EXECUTOR_MODE:LOCAL}
|
||||
# 单步骤命令超时时间(秒)。
|
||||
timeout-sec: ${TMS_INIT_EXECUTOR_TIMEOUT_SEC:600}
|
||||
# 初始化步骤日志目录;按 taskId/stepNo 生成日志文件。
|
||||
log-dir: ${TMS_INIT_EXECUTOR_LOG_DIR:/home/tms/tmp/tms-init-logs}
|
||||
# 标准版(企业/间参)安装根目录统一变量。
|
||||
standard-home-dir: ${TMS_INIT_STANDARD_HOME_DIR:/home/cmep4i}
|
||||
# 标准版 cpconfig.cfg 路径;默认取 standard-home-dir 下文件。
|
||||
standard-cpconfig-path: ${TMS_INIT_EXECUTOR_STANDARD_CPCONFIG_PATH:${tms.init.executor.standard-home-dir}/cpconfig.cfg}
|
||||
# 直参版 cpconfig 文件名(按 upload-base-dir/<cfgZipFileId>/<fileName> 解析)。
|
||||
direct-cpconfig-file-name: ${TMS_INIT_EXECUTOR_DIRECT_CPCONFIG_FILE_NAME:cpconfig.cfg}
|
||||
# 上传文件根目录;所有 fileId 均从该目录解析。
|
||||
upload-base-dir: ${TMS_INIT_EXECUTOR_UPLOAD_BASE_DIR:/home/tms/uploads}
|
||||
# 初始化过程临时暂存目录(用于复制上传文件后再处理)。
|
||||
staging-root-dir: ${TMS_INIT_EXECUTOR_STAGING_ROOT_DIR:/home/tmp/tms-init-staging}
|
||||
# 标准版收发器 license 固定落位路径。
|
||||
standard-receiver-license-target-path: ${TMS_INIT_EXECUTOR_STANDARD_RECEIVER_LICENSE_TARGET_PATH:${tms.init.executor.standard-home-dir}/cmep/license/cmep.license}
|
||||
# 直参版收发器 license 固定落位路径。
|
||||
direct-receiver-license-target-path: ${TMS_INIT_EXECUTOR_DIRECT_RECEIVER_LICENSE_TARGET_PATH:/home/cmep4d/cmep/license/cmep.license}
|
||||
# 标准版 TLQ license(tlqconf.zip)落位路径。
|
||||
standard-tlq-license-target-path: ${TMS_INIT_EXECUTOR_STANDARD_TLQ_LICENSE_TARGET_PATH:/home/tlq/tlqconf.zip}
|
||||
# 直参版 TLQ license(license.dat)落位路径。
|
||||
direct-tlq-license-target-path: ${TMS_INIT_EXECUTOR_DIRECT_TLQ_LICENSE_TARGET_PATH:/home/tlq/TLQ8/license.dat}
|
||||
# 直参版执行 DB 脚本前,渲染后的 cpconfig.cfg 同步目标路径。
|
||||
direct-cpconfig-target-path: ${TMS_INIT_EXECUTOR_DIRECT_CPCONFIG_TARGET_PATH:/opt/cpconfig.cfg}
|
||||
# 直参版数据库初始化脚本目录(通常包含 setsql.sh)。
|
||||
direct-db-script-dir: ${TMS_INIT_EXECUTOR_DIRECT_DB_SCRIPT_DIR:/opt/CAE_Install_Base_Resource/DB}
|
||||
# 直参版 TLQ init_cfg.sh 所在目录。
|
||||
direct-tlq-init-cfg-dir: ${TMS_INIT_EXECUTOR_DIRECT_TLQ_INIT_CFG_DIR:/opt/CAE_Install_App_Resource/CAE}
|
||||
# CFMQ 配置落地目录;为空时仅校验文件,不执行复制。
|
||||
cfmq-target-dir: ${TMS_INIT_EXECUTOR_CFMQ_TARGET_DIR:/pmts/cfg}
|
||||
# RabbitMQ 管理员账号(预制)。
|
||||
rabbit-admin-username: ${TMS_INIT_EXECUTOR_RABBIT_ADMIN_USERNAME:admin}
|
||||
# RabbitMQ 管理员密码(预制)。
|
||||
rabbit-admin-password: ${TMS_INIT_EXECUTOR_RABBIT_ADMIN_PASSWORD:admin}
|
||||
# RabbitMQ 控制命令(用于新增用户、授权等)。
|
||||
# 建议线上配置为绝对路径,例如 /usr/local/rabbitmq/sbin/rabbitmqctl。
|
||||
rabbitmq-ctl-command: ${TMS_INIT_EXECUTOR_RABBITMQ_CTL_COMMAND:rabbitmqctl}
|
||||
# RabbitMQ Admin CLI 命令路径(用于创建队列等)。
|
||||
rabbitmq-admin-command: ${TMS_INIT_EXECUTOR_RABBITMQ_ADMIN_COMMAND:/usr/sbin/rabbitmqadmin}
|
||||
# 标准版 RabbitMQ 初始化脚本(会按前端输入替换 rConn/rConn 后执行)。
|
||||
standard-rabbit-setup-script-path: ${TMS_INIT_EXECUTOR_STANDARD_RABBIT_SETUP_SCRIPT_PATH:${tms.init.executor.standard-home-dir}/cpackage/rabq/setuprabq.sh}
|
||||
# 标准版 RabbitMQ 队列初始化脚本(默认执行 01 节点脚本)。
|
||||
standard-rabbit-queue-script-path: ${TMS_INIT_EXECUTOR_STANDARD_RABBIT_QUEUE_SCRIPT_PATH:${tms.init.executor.standard-home-dir}/cpackage/rabq/addrabq_R_01.sh}
|
||||
# 标准版 RabbitMQ 队列初始化脚本(02 节点);双节点时会按本机IP自动在01/02之间选择。
|
||||
standard-rabbit-queue-script-path-02: ${TMS_INIT_EXECUTOR_STANDARD_RABBIT_QUEUE_SCRIPT_PATH_02:${tms.init.executor.standard-home-dir}/cpackage/rabq/addrabq_R_02.sh}
|
||||
# 通道用户授权 vhost(默认 /RQ)。
|
||||
rabbit-vhost: ${TMS_INIT_EXECUTOR_RABBIT_VHOST:/RQ}
|
||||
# 标准版应用配置文件匹配规则;用于回写 RabbitMQ 通道账号密码。
|
||||
standard-rabbit-app-config-patterns:
|
||||
- ${TMS_INIT_EXECUTOR_STANDARD_RABBIT_APP_CONFIG_PATTERN_1:${tms.init.executor.standard-home-dir}/cmsp/application-prd*.properties}
|
||||
- ${TMS_INIT_EXECUTOR_STANDARD_RABBIT_APP_CONFIG_PATTERN_2:${tms.init.executor.standard-home-dir}/cmtp/application-prd*.properties}
|
||||
# 回写应用配置时,是否对 RabbitMQ 账号密码进行 3DES 加密。
|
||||
standard-rabbit-credential-encrypt-enabled: ${TMS_INIT_EXECUTOR_STANDARD_RABBIT_CREDENTIAL_ENCRYPT_ENABLED:true}
|
||||
# 3DES 加密密钥(需与收发器解密逻辑保持一致)。
|
||||
standard-rabbit-credential-secret-key: ${TMS_INIT_EXECUTOR_STANDARD_RABBIT_CREDENTIAL_SECRET_KEY:ABCDEFGHIJKLMN1234567890}
|
||||
# LOCAL 模式命令白名单前缀;非白名单命令会被拒绝执行。
|
||||
whitelist-prefixes:
|
||||
- ${TMS_INIT_EXECUTOR_WHITELIST_PREFIX_1:bash ${tms.init.executor.standard-home-dir}/cpackage/}
|
||||
- ${TMS_INIT_EXECUTOR_WHITELIST_PREFIX_2:bash /opt/CAE_Install_}
|
||||
- ${TMS_INIT_EXECUTOR_WHITELIST_PREFIX_3:systemctl }
|
||||
- ${TMS_INIT_EXECUTOR_WHITELIST_PREFIX_4:echo }
|
||||
cisd:
|
||||
preset:
|
||||
# 设备预制版本:ENTERPRISE / INDIRECT / DIRECT。
|
||||
product-type: ${TMS_CISD_PRESET_PRODUCT_TYPE:ENTERPRISE}
|
||||
# 预制版本号(用于前端展示与任务记录)。
|
||||
version: ${TMS_CISD_PRESET_VERSION:V1.0.0}
|
||||
# 预制信息来源标识(CONFIG/DB 等自定义值)。
|
||||
source: ${TMS_CISD_PRESET_SOURCE:CONFIG}
|
||||
security:
|
||||
# 内部接口鉴权 token(前后端内部调用需一致)。
|
||||
internal-token: ${TMS_INTERNAL_TOKEN:change-me-internal-token}
|
||||
openapi:
|
||||
# 外部签名服务接口允许的时间戳偏差(秒),防重放。
|
||||
timestamp-skew-seconds: 300
|
||||
clients:
|
||||
# 外部客户端 appId -> secret 映射(示例:demo-app)。
|
||||
demo-app: ${TMS_OPENAPI_DEMO_SECRET:change-me-openapi-secret}
|
||||
crypto-card:
|
||||
enabled: ${TMS_CRYPTO_CARD_ENABLED:false}
|
||||
mode: ${TMS_CRYPTO_CARD_MODE:MOCK}
|
||||
vendor-lib-path: ${TMS_CRYPTO_VENDOR_LIB_PATH:}
|
||||
vendor-lib-name: ${TMS_CRYPTO_VENDOR_LIB_NAME:swsdsdf}
|
||||
# 是否启用密码卡能力。
|
||||
enabled: ${TMS_CRYPTO_CARD_ENABLED:true}
|
||||
# 密码卡模式:MOCK(模拟)/JNA(动态库调用)等。
|
||||
mode: ${TMS_CRYPTO_CARD_MODE:JNA}
|
||||
# 动态库目录(.so 所在目录)。
|
||||
vendor-lib-path: ${TMS_CRYPTO_VENDOR_LIB_PATH:/home/tms/lib/libsdf_syd1408-x64.so.1.0.0}
|
||||
# 动态库名(不含前缀/后缀或按加载器约定)。
|
||||
vendor-lib-name: ${TMS_CRYPTO_VENDOR_LIB_NAME:syd1408}
|
||||
# 是否严格校验算法标识(与 0018/厂商补充定义一致性校验)。
|
||||
strict-alg-id-validation: ${TMS_CRYPTO_STRICT_ALG_ID_VALIDATION:true}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
ALTER TABLE tms_init_task
|
||||
ADD COLUMN IF NOT EXISTS product_type VARCHAR(16) NULL,
|
||||
ADD COLUMN IF NOT EXISTS org_code VARCHAR(32) NULL,
|
||||
ADD COLUMN IF NOT EXISTS mq_type VARCHAR(32) NULL,
|
||||
ADD COLUMN IF NOT EXISTS deploy_mode VARCHAR(16) NULL,
|
||||
ADD COLUMN IF NOT EXISTS init_plan_json LONGTEXT NULL;
|
||||
@@ -0,0 +1,12 @@
|
||||
CREATE TABLE IF NOT EXISTS tms_init_task_step (
|
||||
id BIGINT PRIMARY KEY,
|
||||
task_id VARCHAR(64) NOT NULL,
|
||||
step_no INT NOT NULL,
|
||||
step_code VARCHAR(64) NOT NULL,
|
||||
status VARCHAR(32) NOT NULL,
|
||||
message VARCHAR(512) NULL,
|
||||
create_time DATETIME(3) NOT NULL,
|
||||
update_time DATETIME(3) NOT NULL,
|
||||
UNIQUE KEY uk_tms_init_task_step_task_no (task_id, step_no),
|
||||
KEY idx_tms_init_task_step_task_id (task_id)
|
||||
);
|
||||
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE tms_init_task_step
|
||||
ADD COLUMN IF NOT EXISTS command_line VARCHAR(2048) NULL,
|
||||
ADD COLUMN IF NOT EXISTS log_path VARCHAR(512) NULL,
|
||||
ADD COLUMN IF NOT EXISTS exit_code INT NULL;
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"ENTERPRISE": {
|
||||
"RABBITMQ": {
|
||||
"RENDER_CONFIG": "internal::render_config",
|
||||
"FILE_PREPARE": "internal::file_prepare",
|
||||
"SET_RABBITMQ": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setfraq.sh",
|
||||
"MQ_USER_APPLY": "internal::mq_user_apply",
|
||||
"MQ_QUEUE_APPLY": "internal::mq_queue_apply",
|
||||
"DB_INIT": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setsql.sh",
|
||||
"DEPLOY_RECEIVER": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setsptp.sh",
|
||||
"APP_MQ_CREDENTIALS_APPLY": "internal::app_mq_credentials_apply",
|
||||
"VERIFY": "internal::verify"
|
||||
},
|
||||
"TLQ": {
|
||||
"RENDER_CONFIG": "internal::render_config",
|
||||
"FILE_PREPARE": "internal::file_prepare",
|
||||
"SET_TLQ": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setftq.sh",
|
||||
"MQ_USER_APPLY": "internal::mq_user_apply",
|
||||
"MQ_QUEUE_APPLY": "internal::mq_queue_apply",
|
||||
"DB_INIT": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setsql.sh",
|
||||
"DEPLOY_RECEIVER": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setsptp.sh",
|
||||
"APP_MQ_CREDENTIALS_APPLY": "internal::app_mq_credentials_apply",
|
||||
"VERIFY": "internal::verify"
|
||||
}
|
||||
},
|
||||
"INDIRECT": {
|
||||
"RABBITMQ": {
|
||||
"RENDER_CONFIG": "internal::render_config",
|
||||
"FILE_PREPARE": "internal::file_prepare",
|
||||
"SET_RABBITMQ": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setfraq.sh",
|
||||
"MQ_USER_APPLY": "internal::mq_user_apply",
|
||||
"MQ_QUEUE_APPLY": "internal::mq_queue_apply",
|
||||
"DB_INIT": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setsql.sh",
|
||||
"DEPLOY_RECEIVER": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setsptp.sh",
|
||||
"APP_MQ_CREDENTIALS_APPLY": "internal::app_mq_credentials_apply",
|
||||
"VERIFY": "internal::verify"
|
||||
},
|
||||
"TLQ": {
|
||||
"RENDER_CONFIG": "internal::render_config",
|
||||
"FILE_PREPARE": "internal::file_prepare",
|
||||
"SET_TLQ": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setftq.sh",
|
||||
"MQ_USER_APPLY": "internal::mq_user_apply",
|
||||
"MQ_QUEUE_APPLY": "internal::mq_queue_apply",
|
||||
"DB_INIT": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setsql.sh",
|
||||
"DEPLOY_RECEIVER": "bash {{STANDARD_HOME_DIR}}/cpackage/toolsh/setsptp.sh",
|
||||
"APP_MQ_CREDENTIALS_APPLY": "internal::app_mq_credentials_apply",
|
||||
"VERIFY": "internal::verify"
|
||||
}
|
||||
},
|
||||
"DIRECT": {
|
||||
"RABBITMQ_TLQ": {
|
||||
"RENDER_CONFIG": "internal::render_config",
|
||||
"FILE_PREPARE": "internal::file_prepare",
|
||||
"MQ_USER_APPLY": "internal::mq_user_apply",
|
||||
"DB_INIT": "internal::direct_db_init",
|
||||
"TLQ_INIT_CFG": "internal::tlq_init_cfg",
|
||||
"VERIFY": "internal::verify"
|
||||
},
|
||||
"RABBITMQ_CFMQ": {
|
||||
"RENDER_CONFIG": "internal::render_config",
|
||||
"FILE_PREPARE": "internal::file_prepare",
|
||||
"MQ_USER_APPLY": "internal::mq_user_apply",
|
||||
"DB_INIT": "internal::direct_db_init",
|
||||
"CFMQ_APPLY": "internal::cfmq_apply",
|
||||
"VERIFY": "internal::verify"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,12 +9,17 @@
|
||||
<result property="taskId" column="task_id"/>
|
||||
<result property="version" column="version"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="productType" column="product_type"/>
|
||||
<result property="orgCode" column="org_code"/>
|
||||
<result property="mqType" column="mq_type"/>
|
||||
<result property="deployMode" column="deploy_mode"/>
|
||||
<result property="initPlanJson" column="init_plan_json"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectByTaskId" parameterType="string" resultMap="InitTaskResultMap">
|
||||
SELECT id, task_id, version, status, create_time, update_time
|
||||
SELECT id, task_id, version, status, product_type, org_code, mq_type, deploy_mode, init_plan_json, create_time, update_time
|
||||
FROM tms_init_task
|
||||
WHERE task_id = #{taskId}
|
||||
LIMIT 1
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cisd.tms.modules.init.mapper.InitTaskStepMapper">
|
||||
|
||||
<resultMap id="InitTaskStepResultMap" type="com.cisd.tms.modules.init.entity.InitTaskStepEntity">
|
||||
<id property="id" column="id"/>
|
||||
<result property="taskId" column="task_id"/>
|
||||
<result property="stepNo" column="step_no"/>
|
||||
<result property="stepCode" column="step_code"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="message" column="message"/>
|
||||
<result property="commandLine" column="command_line"/>
|
||||
<result property="logPath" column="log_path"/>
|
||||
<result property="exitCode" column="exit_code"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectByTaskIdOrderByStepNo" parameterType="string" resultMap="InitTaskStepResultMap">
|
||||
SELECT id, task_id, step_no, step_code, status, message, command_line, log_path, exit_code, create_time, update_time
|
||||
FROM tms_init_task_step
|
||||
WHERE task_id = #{taskId}
|
||||
ORDER BY step_no ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user