一、部署流程
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 海燕技术栈