【后端】简化部署交互设计方案V2

news/2025/2/24 10:13:12/文章来源:https://www.cnblogs.com/o-O-oO/p/18717974

一、部署流程

1.1 按需获取安装包

获取安装包和校验码,并校验安装包的完整性。

1.2 配置安装和升级部署

解压安装包,配置必要的参数(例如IP和主机名等),然后执行安装工具进行安装,如果授权码有误,则会退出安装。安装的时候会根据当前已经安装的版本情况,让用户选择升级还是覆盖等操作。期间会输出必要的安装日志和进度。

1.3 启动应用

用户使用提供的工具,一键化对应用进行启动、停止或重启。

1.4 运行状态检查

运行状态检查可以对部署和启动后的组件或包进行检查,确保部署结果的正确性。

二、细化部署流程

2.1 获取安装包和完整性校验

1、安装包的文件结构

checksum.txt
NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz部署工具,二进制部署配置文件加密的部署包NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64-Enc.tar.gzdeploy_config.yamldeploy_tool

其中,checksum.txt中存放NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz的完整性校验码(MD5值)。

格式为 <font style="background-color:#D8DAD9;">md5校验码 文件名</font>,示例如下:

e99a18c428cb38d5f260853678922e03  NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz

2、校验完整性

用户来到安装目录,确保checksum.txt在当前目录,使用下面的命令进行完整性校验:

# 使用md5sum -c 完整性校验码文件 来校验完整性
md5sum -c checksum.txt

如果文件未被损坏,则会输出 MyApp-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz: OK这样的结果。

如果文件损坏了,则会输出 NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz: FAILED md5sum: WARNING: 1 computed checksum did NOT match 的不匹配结果。

2.2 解压安装包并配置

1、解压安装包

如果完整性校验通过,我们可以使用命令对 NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz进行解压:

# tar -zxvf 安装包全名
tar -zxvf NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz

解压完成之后得到下面的结构

  • NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64-Enc.tar.gz:加密的部署包
  • deploy_config.yaml:部署配置文件
  • deploy_tool:部署工具,二进制

2、配置必要的部署参数

deploy_config.yaml是部署的配置参数,在解压安装包完成之后遍可以看到这个文件。

(1)配置参数说明

deploy_config.yaml中默认会存在一系列验证安装包的本身特性的参数,例如包名、包md5等等,这些字段在解压的时候就会有,工具将自动校验这些参数。

除开本身具备的参数以外,为了部署时适应物理环境的拓扑情况,需要用户手动配置部署的IP和主机名。
具体的参数如下:

(2) 部署模式说明

部署存在两种模式,分别为静默安装模式交互式安装模式

静默安装模式是指部署所需要的参数均放置在配置文件中,部署工具不需要显示的与用户交互而进行部署的模式。

而交互式与静默安装则相反,配置参数均以动态交互的方式从用户输入获取。
本工具不需要显示指定部署模式,如果用户在配置文件中配置了所有必填参数,则自动进入静默安装模式。
反之则使用交互式安装模式。

如果用户选择静默安装模式,则需要在deploy_config.yaml中补充配置。

  • 单节点模式配置完整例子
instance_type: 0 # 可省略
master: # 主节点配置ip: "192.168.1.10" # 部署的iphost_name: "master-1-10" # 可省略,默认为 master-ip后两段,即:master-1-10 
  • 单节点最小化配置
master: # 主节点配置ip: "192.168.1.10" # 部署的ip
  • 三节点模式配置例子
# 配置
instance_type: 1 # 0表示单节点实例;1表示三节点实例
master: # 主节点配置ip: "192.168.1.10" # 主节点iphost_name: "master-1-10" # 可省略,默认为 master-ip后两段,即:master-1-10 
nodes: # 从节点列表(长度为2)- ip: "192.168.1.11" # 从节点1 iphost_name: "node-1-11" # 可省略,默认为 node-ip后两段,即:master-1-11 - ip: "192.168.1.12" # 从节点2 iphost_name: "node-1-12" # 可省略,默认为 node-ip后两段,即:master-1-12 
  • 三节点最小化配置
# 配置
instance_type: 1 # 0表示单节点实例;1表示三节点实例
master: # 主节点配置ip: "192.168.1.10" # 主节点ip
nodes: # 从节点列表(长度为2)- ip: "192.168.1.11" # 从节点1 ip- ip: "192.168.1.12" # 从节点2 ip

3、使用安装工具 ./deploy_tool

在解压的安装包中,包含了安装工具.deploy_tool,下面是使用参数:

解压 NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz 之后,会得到 deploy_tool 部署工具。
该工具提供多个参数,允许用户执行安装、升级、检查状态等操作。
(1)使用方式

./deploy_tool [参数]

(2)支持的参数说明

(3)示例用法

  • 执行安装
./deploy_tool --install

根据系统当前状态,自动选择安装方式,并引导用户完成安装。

  • 检查已安装版本
./deploy_tool --check-version

该命令会显示当前已安装的版本号和组件信息。

  • 启动应用
./deploy_tool --start

启动应用,并检查是否成功运行。

  • 检查应用运行状态
./deploy_tool --status

输出当前应用的状态、进程 ID、CPU/内存使用情况等信息。

  • 查看安装日志
./deploy_tool --log

监控 deploy_tool.log 日志文件,查看详细安装过程和可能的错误信息。

  • 卸载应用
./deploy_tool --uninstall

彻底删除当前安装的版本及其相关数据。

  • 显示帮助信息
./deploy_tool --help

显示完整的 deploy_tool 命令参数说明。

2.3 启动安装工具进行安装

手动解压 NgSoc-Custom-XYZCorp-V1.5.0-Full-20241230-x86_64.tar.gz 之后,会得到 deploy_tool 部署工具。

用户按需进行上面的步骤之后,就可以执行下面的命令进行部署工作了。

用户执行下面的命令来启动部署

./deploy_tool --install

执行该命令后,安装工具会进行下面的操作过程:
1、对加密包进行解密解压缩

如果加密包不能被部署工具正常解密解压,则提示部署失败。反之,则继续进行部署。
2、根据环境情况选择部署的方式

部署工具会自动检测系统中是否已有相同组件:

  • 若已有 「相同版本」,提供 「仅安装」 或 「覆盖安装」 选项:
    「仅安装」:保留用户数据,使用当前版本进行安装
    「覆盖安装」:不保留旧版本数据,重新安装
  • 若已有 「旧版本」,提供 「升级」 或 「覆盖安装」 选项:
    「升级」:保留用户数据,更新至新版本
    「覆盖安装」:不保留旧版本数据,重新安装

如果在安装前想仅检查当前的版本,可以执行下面的命令。

【示例】命令(检查已安装版本):

./deploy_tool --check-version

3、执行安装部署步骤

依赖检查通过之后,利用算法生成私钥,利用私钥解密对部署包进行解密。

解密成功之后,进入安装步骤,安装工具会使用配置的安装实例类型参数,如果参数值为0,表示该授权码是单实例部署的授权;如果参数值为1,表示该授权码是三节点实例部署的授权;

4、交互式配置IP

如果是单实例部署,且「用户没有在早先的配置文件中配置必要参数」,工具则会提示用户输入当前服务的外部IP地址和主机名(主机名可选);

如果是三实例部署,且「用户没有在早先的配置文件中配置必要参数」,工具则会提示用户需要输入master节点的IP地址和主机名(主机名可选);其他子节点的IP地址和主机名(主机名可选)。

在所有的部署情况中,其他组件和应用的配置参数,也有可能会有变化,如果用户不填写,则以缺省的方式进行配置(即默认值填充)。

5、安装进度输出与日志保留

在安装过程中,部署工具会实时输出安装进度,用户可以通过终端查看当前的安装步骤。
安装进度包括但不限于:

  • 依赖检查:确认所有必需的软件和组件已安装
  • 解密解压:解密部署包并进行解压缩
  • 安装执行:按照部署方式(安装、升级、覆盖安装)执行相应的安装操作
  • 配置更新:写入或更新配置文件
  • 启动前检查:确保安装完成后所有组件正常

此外,工具会自动记录安装日志,日志路径默认为 ./deploy_tool.log,用户可自行查看详细安装信息。

【示例】查看日志命令:

# 查看安装日志
tail -f ./deploy_tool.log
# 或使用
./deploy_tool --log

如果安装失败,可检查日志获取详细错误信息。

2.4 启动应用

可以使用下面的命令对应用进行启动。

./deploy_tool --start

启动时,工具会执行以下操作:

  • 加载环境变量 :确保所有依赖的环境变量正确配置
  • 检查端口占用 :确保应用绑定的端口未被其他进程占用
  • 启动进程 :按照配置文件的参数启动应用
  • 验证启动状态 :检查进程是否正常运行,确保启动成功

如果启动失败,终端会显示错误信息,并提供相应的日志路径以便排查问题。

2.5 运行状态检测

可以使用下面的命令对应用运行状态进行检测

./deploy_tool --status

该命令会返回目前购买的组件的运行状态清单,例如:

  • Running(运行中)
  • Stopped(已停止)
  • Error(运行异常)

此外,该命令还会显示相关的运行信息,例如进程 ID(PID)、CPU/内存占用、日志路径等。

示例如下:

# 执行./deploy_tool --status
AEEST APPLICATION Status: Running
Process ID: 12345
CPU Usage: 5.2%
Memory Usage: 150MB
Log File: /var/log/asset.logVULNER APPLICATION Status: Running
Process ID: 12345
CPU Usage: 5.2%
Memory Usage: 150MB
Log File: /var/log/vulner.log

2.6、缺省的参数清单说明

在上面的描述中,我们在 deploy_config.yaml 配置了部署的IP信息。除此之外,在某些情况下,我们需要手动配置一些部署的参数,那么这个时候就需要用户手动在deploy_config.yaml设置参数。这个缺省的参数清单需要各个组件上报汇总。

三、安装包的命名

目标:通过文件名即可识别 包类型、版本、发布时间 及 其他关键信息。

3.1 命名格式

<产品名称>-<包类型>-<客户标识>-<发布版本>-<包类别>-<发布日期>-<CPU构型>-<加密标识(可选)>.tar.gz

例如:

NgSoc-Custom-ABCCorp-V2.3.1-Patch-20241230-x86_64.tar.gz

3.2 详细字段说明

3.3 命名示例

原创 demo123567 海燕技术栈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884677.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【后端】简化部署设计方案V2——技术实现方案

一、安装部署核心内容包的结构 部署核心内容包包含了对操作系统的优化、中间件的安装配置和子平台的安装配置等类型。 1.1 现有交互式部署工具V1的小组件部署结构 目前的交互式部署工具V1进行细化的部署工作,V1工具为每个组件定义了完整的部署逻辑,同时V1工具也为每一个可变参…

最大连续和(单调队列dp)

这道题对取最大值的地方有要求,要先取最大值再入队

Mysql之B树

B-树 B-树(B树或B_树),这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树(B树是一颗多路平衡查找树) 它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图。B-树有如下特点所有键值分布在整颗树中(索引值和具体dat…

Svelte 最新中文文档翻译(10)—— use: 与 Actions

前言 Svelte,一个非常“有趣”、用起来“很爽”的前端框架。从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…

如何在啥也不懂的情况下将你的公众号接入DeepSeek或其它大模型

本文详细介绍了零基础用户如何借助AI工具将微信公众号接入DeepSeek等大模型实现智能回复的全流程。首先通过AI问答确定开源项目chatgpt-on-wechat,利用豆包AI分析项目结构后选择Docker部署方案。重点讲解了在Ubuntu系统配置国内镜像安装Docker、编写含中文注释的docker-compos…

rust学习十八.1、RUST的OOP和简单示例

很可惜,出于一些理由,rust抛弃了OOP的核心特性之一:继承 其中一个理由应该是至关重要的,但是解释的比较模糊:继承增加了复杂性的确,继承会让rust编译器变得更加复杂。rust编译器虽然足够体贴,但是它偏慢的编译速度也是很多人所吐槽的。 在我对rust编译了解更多之前,我对…

【后端】简化部署设计方案——内层设计方案

根据《简化部署设计方案V2》的内容,内层部署需要提供的 .sh 脚本应覆盖部署流程的各个阶段,确保组件能够顺利安装、配置、启动、检查状态,并支持升级和卸载。 一、 部署某组件所需的内层结构 左侧是约定的内层结构,右侧的其他部署的内容物,按需存放即可。1.1 scripts目录:…

H3C CX8028 GPFS并行文件系统全闪存储配置案例

H3C华三CX8028使用IBM的GPFS商业授权的一款全闪存储设备。本案中,客户机服务器与存储服务器均搭配双口200G网卡 ,配合200G的ROCE网络搭建集群。 GPRS文件系统中,存储集群不光需要把存储服务器组织在一起,客户机也需要在集群中声明身份,参与到集群之中,这并不像传统的集中…

【kali】在Kali Linux中安装Navicat17

Navicat 是笔者最喜欢的一款专业的数据库管理工具,不仅支持多种数据库类型,而且它提供了直观的用户界面和丰富的功能,帮助用户轻松管理和操作数据库,提高工作效率。 通过,Navicat我们是在Windows环境中部署的。本文以KALI为例,讲解如何在Linux环境中部署。 首先,我们从官…

URL 生成网站截图 API 数据接口

URL 生成网站截图 API 数据接口 网站工具 / 截图 高效生成网页截图 生成网页截图 / 图片输出。1. 产品功能支持全页截图和视窗截图; 支持自定义截图尺寸; 兼容移动设备截图; 支持暗黑模式截图; 固定参数请求,可以得到最新的站点截图; 快速高效的截图生成; 全接口支持 HT…

OCR识别表格中的参数及参数值

一、需求 识别固定表格中的文字,输出表格中的参数字典 二、整体思路找到一张含有表格的图片,利用mac自带的预览工具分析出图片每个单元格的对角线坐标, 使用程序根据图片文件和对角线坐标数组,分割图片为很多个小图片, 采用tesseract库识别单个单元格中的文字,并将识别出…

H800 Nvlink 基础环境配置(Ubuntu20.04 )

H100/800 SXM的8卡服务器在配置多机互联环境时,除了要安装Nvidia的GPU驱动,还需要安装FabricManager。 Nvidia 提供了在线安装和离线安装两种方式。Z项目H800 NVL 基础环境配置(Ubuntu20.04 ) 操作系统基础安装 配置源 本操作在Ubuntu 20.04下完成, 所有命令都以root身份执行…