基于Ascend Deployer工具实现第三方软件自动化部署的参考实践
发表于 2025/12/24
非商用声明
该文档提供的内容为参考实践,仅供用户参考使用,用户可参考实践文档构建自己的软件,并按需进行安全、可靠性加固,但不建议直接将相关Demo或镜像文件集成到商用产品中。
1 简介
本自动化软件部署工具基于Ascend Deployer工具进行增量开发,Ascend Deployer工具提供OS依赖和Docker的自动下载以及一键式安装的功能,并支持驱动、固件、CANN、MindCluster组件(性能测试,故障诊断,集群调度)、AI框架(TensorFlow、MindSpore或PyTorch)、MindIE镜像等软件包在线&离线下载、安装及升级,本自动化软件部署工具在此基础上增加了如vLLM-Ascend推理引擎、Dify等软件的下载、安装与卸载功能,扩展了Ascend Deployer工具支持软件的范围,使得用户可以更加便捷地基于昇腾设备构建上层应用。
关键功能特性
下载软件
Ascend Deployer工具为推理及训练场景下的昇腾硬件提供在Linux系统和Windows系统上的软件下载能力,支持下载与硬件及OS版本配套的昇腾软件、Docker、系统依赖及第三方开源软件。
安装软件
Ascend Deployer工具为推理及训练场景下的昇腾硬件提供单机及批量安装软件的能力。运行工具即可实现多台设备同时自动化部署,节省安装部署的时间。
升级软件
Ascend Deployer工具为推理及训练场景下的昇腾硬件提供单机及批量升级软件能力。当前支持升级以下软件:驱动固件、MCU固件、CANN、MindCluster组件(性能测试,故障诊断,集群调度)。
卸载软件
Ascend Deployer工具为推理及训练场景下的昇腾硬件提供单机及批量卸载软件能力。当前支持卸载以下软件:MindIE推理引擎、MIS推理微服务、openGauss向量数据库、Dify等。
使用流程
自动化软件部署工具的使用流程如下所示:

2 使用指南
本工具基于Ascend Deployer工具进行增量开发,在Ascend Deployer工具已有功能的基础上添加部分软件的下载、安装及卸载功能,除获取工具、配置软件安装部署参数、卸载软件等部分存在差异,其余使用方法与Ascend Deployer工具一致,本文仅简单介绍基本的使用方法,可具体、具体、大参考Ascend-Deployer用户指南了解更详细的用户指南。
主要分为以下两种使用场景:
- 软件下载与执行安装操作使用不同设备的场景:

- 软件下载与执行安装操作共用设备的场景:

2.1 获取Ascend Deployer工具
下载zip包解压使用
- 前往ascend-deployer代码仓切换至appliance_deployer分支后下载zip包获取工具,亦可clone代码仓后切换至appliance_deployer分支使用。
如需在Windows系统上下载待安装软件包,在Windows系统上解压zip包后即可参照“2.2.2 在Windows系统上下载待安装软件包”章节进行操作。
- 以root用户登录待安装Ascend Deployer工具的服务器。
- 将zip包上传至待安装设备(Linux系统)$HOME目录。
- 解压zip包。示例如下:
unzip ascend-deployer-{version}.zip2.2 下载待安装软件包
Ascend Deployer工具支持在Linux与Windows系统下载待安装软件包,用户可以在能连通外部网络的服务器上下载好相应软件包,再将工具及软件包打包上传至执行机(用于部署Ascend Deployer工具执行批量安装的服务器)执行后续的软件安装操作。由于部分软件为镜像,下载会使用docker拉取镜像,建议优先在Linux系统上下载待安装软件包。
2.2.1 在Linux系统上下载待安装软件包
Ascend Deployer工具支持在Linux系统上下载系统依赖、CANN软件包、NPU固件与驱动、AI框架、MindCluster组件(性能测试,故障诊断,集群调度)、Dify等。Ascend Deployer工具支持下载的全部软件包请参见Ascend Deployer工具支持下载的软件列表。
须知
- Ascend Deployer工具在线下载仅提供昇腾社区版本的软件包,商用版本无法拉取。如需获取商用版本请在下载时选择仅下载OS依赖包,对应软件包请参考安装昇腾软件(自行准备软件包方式)自行上传。
- 下载软件包和依赖所需空间较多,请确保下载目录的可用空间至少为20G,下载过程中如遇空间不足的报错信息,请根据实际情况配置可用空间。
- 由于需要安装大量开源软件,Ascend Deployer工具下载的开源软件均来自操作系统源,开源软件的漏洞和修复需要用户自行根据情况修复,强烈建议使用官方源定期更新。
- 了解全部Ascend Deployer工具下载须知请参见下载注意事项。
- MTOS由于需使用到公网无法获取的kernel-devel包,下载功能仅为预埋,若需使用,请下载完成后替换为镜像解压后的kernel-devel-5.10.0-218.0.0.mt20240808.560.mt2203sp4.aarch64.rpm包。
- Ascend Deployer工具默认下载和安装的Python版本为3.7.5,本手册中均以环境上安装Python 3.7.5为例进行说明。如果用户想选择其他Python版本(不建议更改默认配置),可以通过设置环境变量ASCEND_PYTHON_VERSION(如export ASCEND_PYTHON_VERSION=Python-3.7.0)或修改ascend-deployer/ascend_deployer/downloader/config.ini文件中的Python配置项的方式,指定要安装的Python版本(可选版本为3.7.0~3.7.11、3.8.0~3.8.11、3.9.0~3.9.9、3.10.0~3.10.12、3.11.4)。
- Linux用户可通过如下命令,触发刷新可下载的软件包列表。
bash start_download.sh -h- 在Linux上使用docker pull方式下载镜像时,由于docker pull默认下载符合当前服务器架构的镜像,所以下载设备与待安装设备的服务器架构需保持一致,如均为AArch64。
前提条件
- 已获取Ascend Deployer工具。
- 执行下载操作的用户需具有Ascend Deployer工具目录的可执行权限。
- 当前环境上存在Python3及pip3。
下载方式
进入Ascend Deployer解压后的目录。示例如下:
cd $HOME/ascend-deployer-{version}/ascend_deployer执行如下命令:
bash start_download.sh --os-list=<OS> --download=<PK1>,<PK2>==<Version> ...参数说明参考下表或执行bash start_download.sh --help查看。
参数 | 说明 | 是否可选 |
|---|---|---|
--os-list=<OS> | --os-list参数用于指定待安装设备的OS,请根据实际替换,可同时指定多个。 示例如下:--os-list=Ubuntu_18.04_aarch64 查看Ascend Deployer工具支持的全部OS,请查看支持的OS及架构。 须知: | 必选 |
--download=<PK1>,<PK2>==<Version> | 使用--download参数可以在线下载的全部软件包请参见Ascend Deployer工具支持下载的软件列表,支持批量下载多个软件包。 如用户想指定下载的软件包版本,请联系华为技术支持获取版本配套表;若不指定软件包版本,则会下载最新可选版本的软件包。由于MindIE-image较大,下载时需要指定其版本及型号。示例如下: 在以上示例中,各软件包包含的组件说明如下: NPU:npu(driver、firmware),mcu CANN:nnae,nnrt,tfplugin,toolkit,kernels,toolbox DL:ascend-device-plugin,ascend-docker-runtime,hccl-controller,noded,npu-exporter,volcano,ascend-operator,resilience-controller,clusterd,mindio FaultDiag:faultDiag MindSpore:mindspore TensorFlow:tensorflow Torch-npu:torch-npu,torch MindIE-image:mindie-image 注: | 可选 |
Ascend Deployer工具支持下载的软件列表:
可选参数 | 下载包含的软件包 | 使用约束 |
|---|---|---|
CANN | nnae,nnrt,tfplugin,toolkit,kernels,toolbox | 使用Ascend Deployer工具下载CANN的软件包时,可以使用pip3工具执行pip3 install esdk-obs-python==3.23.12安装指定版本的esdk-obs-python,启用CANN软件包断点续传功能,防止出现因软件包较大、网络原因导致下载失败或者重新下载耗时较久的情况。 CANN 8.0.0及之后的版本中不再支持tfplugin。 toolbox为MindCluster性能测试组件,其版本与CANN包版本配套,版本号独立。 |
NPU | npu(driver、firmware),mcu | NPU固件与驱动24.1.0版本中暂不提供Atlas 300I Pro 推理卡、Atlas 300I Duo 推理卡、Atlas 300V 视频解析卡、Atlas 300V Pro 视频解析卡的相关硬件包,请自行下载准备。 |
MindCluster集群调度 | ascend-device-plugin,ascend-docker-runtime,hccl-controller,noded,npu-exporter,volcano,ascend-operator,resilience-controller,clusterd,mindio | 部署MindIO时,请参考下载软件章节下载OS系统依赖后,再手动安装dos2unix依赖(示例:apt-get install dos2unix)。 MindCluster6.0.0及之后的版本中不再支持hccl-controller。 MindCluster7.1.RC1及之后的版本中不再支持下载和安装mindio。 |
MindCluster故障诊断 | fault-diag | - |
MindSpore | MindSpore | 使用Ascend Deployer部署时,不支持同时下载和安装MindSpore、TensorFlow和Torch-npu。仅支持指定其中一个AI框架下载和安装,请根据实际业务场景要求选择AI框架。 TensorFlow2.6.5存在漏洞,请参考相关漏洞及其修复方案处理。 |
TensorFlow | TensorFlow | |
Torch-npu | torch-npu,torch | |
MindIE-image | mindie-image | 因镜像文件较大,下载时需选择版本及型号。 |
MIS-image | MIS推理微服务的镜像 | 当前仅预置了qwen3-30b-a3b微服务,仅支持在Atlas 800I A2/Atlas 300I A2上部署。 下载需要docker。 |
openGauss | openGauss镜像 | |
NpuExporter | npu-exporter | 安装资源监控平台需同时下载NpuExporter与MonitorPlat |
MonitorPlat | prometheus与grafana的镜像 | 安装资源监控需同时下载NpuExporter与MonitorPlat 下载需要docker。 如待安装服务器上无docker-compose,可同时下载DockerCompose用于安装docker-compose。 |
vLLM-Ascend | vllm-ascend镜像 | 下载时需选择版本及型号。 下载需要docker。 |
DifyCodes | Dify源代码 | 安装Dify需同时下载DifyCodes与DifyImages。 下载DifyImages需要docker。 如待安装服务器上无docker-compose,可同时下载DockerCompose用于安装docker-compose。 当前DifyImages仅包含了部署Dify所需的基础镜像,如需其他镜像可参考新增自定义软件下载的参考流程章节自行修改json文件添加相应镜像的下载信息。 |
DifyImages | Dify所需的基础镜像 | |
DockerCompose | docker-compose | |
GPUStackCommon | GPUSatck所需的基础镜像 | 部署GPUStack必须下载GPUStackCommon。 根据所需的推理引擎按需下载GPUStackRunner,如仅需要MindIE推理引擎,则只需要下载GPUStackRunner-MindIE,如下载多个推理引擎,则安装部署GPUStack时会将所有下载的镜像传输到待安装机器上,可能导致存储空间不足。 下载GPUStackRunner需选择版本。 |
GPUStackRunner-MindIE GPUStackRunner-sglang GPUStackRunner-vLLM | GPUStack部署模型服务所需的镜像,包括MindIE推理引擎、vLLM-Ascend推理引擎、sglang推理引擎相对应的镜像 |
存放路径说明
执行下载后,软件包会自动放置到$HOME/ascend-deployer-{version}/ascend_deployer/resources目录下。
查看下载结果报告
下载完成后,在~/.ascend_deployer/download_info下会生成下载结果文件failed_download_result_{pid}_{下载时间}.json。若下载失败,可在此查看下载失败的结果报告。
下载日志见/ascend-deployer-{version}/ascend_deployer/目录下的downloader.log和downloader_operation.log文件。
2.2.2 在Windows系统上下载待安装软件包
Ascend Deployer工具支持在Windows系统上下载系统依赖、CANN软件包、NPU固件与驱动、AI框架、MindIE镜像以及MindCluster组件(性能测试,故障诊断,集群调度)、Dify等。Ascend Deployer工具支持下载的全部软件包请参见Ascend Deployer工具支持下载的软件列表。
须知
- Ascend Deployer工具在线下载仅提供昇腾社区版本的软件包,商用版本无法拉取。如需获取商用版本请在下载时仅选择下载OS依赖包,对应软件包请参考安装昇腾软件(自行准备软件包方式)自行上传。自行放置软件时,请勿放置相同软件的多个不同版本的软件包,如同时放置Ascend-cann-toolkit-6.0.RC1.zip和Ascend-cann-toolkit-6.0.RC2.zip。
- 下载软件时,请勿重复下载相同软件的多个不同版本。
- 下载软件包和依赖所需空间较多,请确保下载目录的可用空间至少为20G,下载过程中如遇空间不足的报错信息,请根据实际情况配置可用空间。
- 由于需要安装大量开源软件,Ascend Deployer工具下载的开源软件均来自操作系统源,开源软件的漏洞和修复需要用户自行根据情况修复,强烈建议使用官方源定期更新。
- 了解全部Ascend Deployer工具下载须知请参见下载注意事项。
- MTOS由于需使用到公网无法获取的kernel-devel包,下载功能仅为预埋,若需使用,请下载完成后替换为镜像解压后的kernel-devel-5.10.0-218.0.0.mt20240808.560.mt2203sp4.aarch64.rpm包。
- Ascend Deployer工具默认下载和安装的Python版本为3.7.5,本手册中均以环境上安装Python 3.7.5为例进行说明。如果用户想选择其他Python版本(不建议更改默认配置),可以通过设置环境变量ASCEND_PYTHON_VERSION(如export ASCEND_PYTHON_VERSION=Python-3.7.0)或修改ascend-deployer/ascend_deployer/downloader/config.ini文件中的Python配置项的方式,指定要安装的Python版本(可选版本为3.7.0~3.7.11、3.8.0~3.8.11、3.9.0~3.9.9、3.10.0~3.10.12、3.11.4)。
前提条件
- 已获取Ascend Deployer工具。
- 使用在线下载功能下载6.0.RC3版本之前的系统依赖、CANN软件包、NPU固件与驱动、AI框架以及MindCluster组件(性能测试,故障诊断,集群调度)时,需满足在线下载功能的使用要求所示要求,请根据具体情况配置。
下载软件包
- Windows环境需安装Python3,推荐使用Python3.7版本以上。下载链接:Python3.7.5。(如果已安装,请忽略。)请根据界面提示完成Python安装。注意安装时在“Advanced Options”界面勾选“Add Python to environment variables”,否则需手动添加环境变量。
- 如需在Windows系统中下载镜像,需要下载Docker Desktop软件,安装完成后建议更改镜像存储的位置,避免导致C盘存储空间不足,使用Docker Desktop软件下载镜像可能存在稳定性问题,建议优先使用Linux系统下载镜像。Windows系统下使用docker pull方式下载镜像时需只指定一个OS,且OS的架构与待安装设备的架构应保持一致,涉及软件为MIS-image、vLLM-Ascend、DifyImages、MonitorPlat、GPUStack系列。

3. 进入解压后的ascend-deployer-{version}安装文件,进入ascend_deployer文件夹,双击运行start_download_ui.bat,进入“离线安装下载器”。

4. 勾选待安装设备的OS和需要在线下载的软件包。
5. (可选)单击“启用代理”,填写代理信息。(在Windows10及以上版本操作系统上,用户可使用已配置的代理服务器进行软件下载。其他操作系统暂不支持此功能。)
6. 单击“开始下载”。出现类似如下回显,表示下载完成。

7. 下载完成后软件包会自动放置到ascend-deployer-{version}/ascend_deployer/resources目录下。
8. 然后将“ascend-deployer-{version}”整个目录压缩成zip包上传至执行设备(用于部署Ascend Deployer工具执行批量安装的服务器)任意目录。
9. 在执行机上执行unzip ascend-deployer-{version}.zip命令解压获得“ascend-deployer-{version}”目录。
10. 下载完成后,在~/.ascend_deployer/download_info下会生成下载结果文件failed_download_result_{pid}_{下载时间}.json。若下载失败,可在此查看下载失败的结果报告。下载日志见/ascend-deployer-{version}/ascend_deployer/目录下的downloader.log和downloader_operation.log文件。
2.3 上传待安装软件包(可选)
如下载软件包与执行安装操作使用不同设备,需将“ascend-deployer-{version}”整个目录打包成压缩包后上传至执行设备(用于Ascend Deployer工具执行安装的服务器)任意目录,再解压获得“ascend-deployer-{version}”目录。
2.4 安装软件
用户可以直接在部署Ascend Deployer工具用于执行安装的服务器(执行机)上使用工具下载软件包,亦可在其他设备上下载软件包并上传至执行机上,安装场景主要分为执行机单机安装与批量安装。
- 使用场景1:执行机单机安装单机安装场景下执行安装的设备与待安装设备为同一台设备,用户可在另一台联网设备上下载待安装软件包后上传至待安装设备,或直接在联网的执行设备上下载待安装软件包,之后依次执行如下步骤:配置软件安装部署参数执行安装命令检查安装结果
- 使用场景2:批量安装批量安装场景下待安装设备可包括执行设备,用户可在另一台联网设备上下载待安装软件包后上传至待安装设备,或直接在联网的执行设备上下载待安装软件包,之后依次执行如下步骤:配置服务器信息远程连接服务器配置软件安装部署参数执行安装命令检查安装结果
2.4.1 配置服务器信息(执行机单机安装可跳过)
本章节主要指导批量安装的场景,执行机单机安装可跳过。
编辑inventory_file文件
- 登录Ascend Deployer执行机。
在Ascend Deployer执行机上配置待安装的其他设备的IP地址、用户名。
进入ascend-deployer/ascend_deployer目录,编辑inventory_file文件,在[worker]下面需注释或删除“localhost ansible_connection='local' ansible_ssh_user='root'”内容。按照表1,完成相关参数的配置,填写完成后执行:wq保存退出。批量待安装场景下请明确配置IP地址,不建议使用localhost。如下所示:

参数说明表:
参数 | 是否可选 | 说明 |
|---|---|---|
IP | 必选 | 服务器的IP地址。 |
ansible_ssh_user | 必选 | SSH登录远程服务器的账号,需要为root账号。 |
ansible_ssh_pass | 可选 | SSH登录远程服务器账号的密码。 如果配置了SSH密钥认证方式且root用户可以登录,则无需配置。 |
npu_num | 可选 | 设置NPU卡的数量,可核对识别到的NPU数量与规划NPU数量是否相符。 |
注:
- ansible_connection='local'表示指定本地连接方式(无需 SSH,直接本地执行);
- IP address支持配置IPv4和IPv6两种类型的IP地址,用户使用PuTTY等SSH客户端连接执行机的IP地址和inventory_file文件中配置的IP地址类型需要保持统一,均为IPv4或IPv6。
2.4.2 远程连接服务器(执行机单机安装可跳过)
Ascend Deployer支持通过SSH密钥认证(免密登录)和SSH密码认证两种方式远程连接其他待安装服务器,推荐用户参考以下步骤进行SSH密钥认证,如使用SSH密码认证可跳过本步骤,配置HCCN参数时必须配置免密登录。
SSH密码认证请根据所需安装的软件包,配置服务器安装部署参数(以下简称inventory_file)文件中的ansible_ssh_pass字段。
执行机单机安装请跳过本步骤。
详细内容可参考: https://www.hiascend.com/document/detail/zh/mindcluster/72rc1/deployer/deployerug/deployer_0012.html
2.4.3 配置软件安装部署参数
在安装以下软件时,需额外配置软件安装部署所需的相关参数,请参考对应章节进行配置。
以下命令行操作均在ascend-deployer-{version}/ascend_deployer目录下。
2.4.3.1 MIS推理微服务
- MIS推理微服务包含了多个推理微服务,本工具仅预置了qwen3-30b-a3b微服务,其他模型的微服务可基于3-新增自定义软件安装部署的参考流程参考qwen3-30b-a3b自行实现。
修改配置文件
vim conf/mis_image_config.json
参考示例配置每个推理微服务的容器端口号,mis_config,使用的npu卡号,权重路径,确保容器名称填写无误(即qwen3-30b-a3b)
其中mis_config可以在ascend-hub查询到

权重路径为权重所在的上级目录,如权重为/data/weigths/Qwen3-30B-A3B, 则填写/data/weigths/,权重目录的名称需与ascend-hub要求的名称一致,即Qwen3-30B-A3B。
2.4.3.2 MindIE推理引擎
修改inventory_file
vim inventory_file参考示例在worker下添加需要部署的服务器ip、密码、davinci,在[all:vars]配置字段下完成模型权重目录的配置
[worker] #每一行代表一台待安装设备的信息
xx.xxx.xx.xx1 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" #请替换为实际待安装设备的IP
xx.xxx.xx.xx2 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" davinci=0,1,2,3 #请替换为实际待安装设备的IP,davinci=0,1,2,3表示仅挂载服务器的0,1,2,3号卡[all:vars]WEIGHTS_PATH="/home/weights" #请替换为模型权重所在目录参数说明如下表所示:
参数 | 是否可选 | 说明 |
|---|---|---|
IP | 必选 | 服务器的IP地址。 |
ansible_ssh_user | 必选 | SSH登录远程服务器的账号,需要为root账号。 |
ansible_ssh_pass | 可选 | SSH登录远程服务器账号的密码。 如果配置了SSH密钥认证方式且root用户可以登录,则无需配置。 |
npu_num | 可选 | 设置NPU卡的数量,可核对识别到的NPU数量与规划NPU数量是否相符。 |
davinci | 仅在安装MindIE时选填。 | 表示映射到容器的davinci,可以挂载一个或者多个davinci。可以通过执行ll /dev/ | grep davinci查询设备上davinci的名称及个数。 如果不填写,则默认挂载设备上所有的davinci。 安装1.0.RC3版本的MindIE时,davinci只能挂载1/2/4/8这样的数量,不能挂载3/5/6/7这样的数量。 |
WEIGHTS_PATH | 可选 安装MindIE时必填。 | 服务器上模型权重所在的目录,节点上真实存在的文件路径。 |
2.4.3.3 openGauss向量数据库
修改配置文件
vim conf/opengauss_config.json
参考示例配置openGauss向量数据库的密码,数据存放目录,端口号。
密码格式要求同openGauss向量数据库,安装完成后进入容器参考使用gsql访问open Gauss | openGauss文档 | openGauss社区修改密码,避免密码泄漏。
2.4.3.4 资源监控平台
安装资源监控平台会首先在所有的worker节点安装NpuExporter,然后在master节点通过docker-compose拉起prometheus与grafana的容器。
安装前检查
- 完成NpuExporter、MonitorPlat的下载。
- 工具安装NpuExporter时,会创建hwMindX用户,安装前需确保环境上不存在此用户和用户组,或者该用户是按照npu-exporter安装指导方式正确创建。
- 工具安装NpuExporter时,需要创建相关日志目录,安装前需确保环境上不存在/var/log/mindx-dl的目录,或者该目录及其子目录权限符合npu-exporter安装指导的相关日志文件权限,且属主为hwMindX。
修改配置文件
vim conf/monitor_plat_config/npu_monitor_config.json参考示例进行配置

参数说明:
类别 | 参数 | 含义 |
|---|---|---|
common | data_path | 存储grafana和prometheus相关数据及配置文件的目录,请确保master节点上不存在该目录或该目录为空。 |
npu_exporter | port | npu-exporter的端口号 |
prometheus | port | prometheus的端口号 |
grafana | port | grafana的端口号 |
password | grafana的登陆密码,登录账户默认为admin | |
old_uid | grafana仪表盘中的默认uid,拉起grafana后需要更换为新的uid,工具会自动读取原始配置文件中的uid,如读取失败会使用默认uid,默认情况无需修改本参数。 |
修改inventory_file
vim inventory_file参考示例在worker下添加需要部署的服务器ip及密码:
[master]
xx.xxx.xx.xx1 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" #请替换为实际待安装设备的IP
[worker] #每一行代表一台待安装设备的信息
xx.xxx.xx.xx2 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" #请替换为实际待安装设备的IP,不能使用localhost
xx.xxx.xx.xx3 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" #请替换为实际待安装设备的IP,不能使用localhost本次部署会在一台master节点安装prometheus与grafana,并在所有worker节点安装npu-exporter,建议在master节点上执行安装。master节点可与worker节点为同一节点,若为同一节点则为混合部署方式。
约束条件:
- master节点仅能填一个;
- worker节点必须填服务器ip,不能使用localhost等;
2.4.3.5 vLLM-Ascend推理引擎
修改配置文件
vim conf/vllm_ascend_config.json
参考示例配置vllm-ascend使用的npu卡号和权重路径
2.4.3.6 Dify
环境依赖
参考Dify官方文档的先决条件Docker Compose - Dify Docs,Linux平台下部署Dify需要Docker 19.03 或更高版本,Docker Compose 1.28 或更高版本,后续安装过程假设服务器上未安装Docker Compose,先安装Docker Compose后安装Dify,如服务器上已安装Docker Compose,则安装Dify过程中无需安装Docker Compose。

修改配置文件
Dify部署时需要环境配置文件.env,工具在/conf文件夹下默认放置了dify_.env.example环境配置文件(Dify 1.10.0版本的.env.example),如需修改参数或更换Dify版本,请修改或更换/conf/dify_.env.example文件,文件名需保持dify_.env.example不变,工具安装时会将该文件复制为Dify 源代码中的 Docker 目录的.env文件。
修改inventory_file
vim inventory_file配置Dify源码的保存路径:

2.4.3.7 GPUStack
修改配置文件
vim conf/gpustack_config.json
参考示例配置GPUStack的server节点与worker节点,参数含义如下:
参数 | 含义 |
|---|---|
port | server端口号 |
data_path | GPUStack数据存放目录,如需部署server与worker在同一节点,确保配置在不同目录,安装前需确保该目录为空 |
weight_path | 权重存放目录,由于GPUStack约束,需确保worker下的权重也存放在server的相同路径 |
connect_timeout | 等待server服务启动超时时间 |
修改inventory_file
vim inventory_file参考示例在worker下添加需要部署的服务器ip及密码:
[master]
xx.xxx.xx.xx1 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" #请替换为实际待安装设备的IP
[worker] #每一行代表一台待安装设备的信息
xx.xxx.xx.xx2 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" #请替换为实际待安装设备的IP,不能使用localhost
xx.xxx.xx.xx3 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" #请替换为实际待安装设备的IP,不能使用localhost本次部署会在一台master节点安装gpustack_server,并在所有worker节点安装gpustack_worker,建议在master节点上执行安装。
约束条件:master节点仅能填一个;
master节点可与worker节点重复,若重复则为混合部署方式。
2.4.3.8 配置参数面网络
参见功能介绍-MindCluster7.2.RC1-昇腾社区
2.4.3.9 安装MindCluster集群调度前配置
参见安装MindCluster集群调度前配置-MindCluster7.2.RC1-昇腾社区
2.4.3.10 部署DeepSeek PD实例时配置
参见部署DeepSeek PD实例时配置-MindCluster7.2.RC1-昇腾社区
2.4.3.11 Docker场景部署DeepSeek
参见Docker场景部署DeepSeek-MindCluster7.2.RC1-昇腾社区
2.4.4 执行安装命令
安装前必读
- 使用MindCluster Ascend Deployer工具安装前,请确保MindCluster Ascend Deployer执行机的硬盘存储空间在16G以上。
- 部分组件存在运行时依赖,如PyTorch需要toolkit或nnae提供运行时依赖;在Atlas A2 训练系列产品中,PyTorch需要安装kernels;MindCluster Ascend Deployer 6.0.0之前的版本,TensorFlow调用NPU资源需要tfplugin+toolkit或tfplugin+nnae组合提供运行时依赖,MindCluster Ascend Deployer 6.0.0及之后的版本,TensorFlow调用NPU资源需要toolkit或nnae提供运行时依赖;MindSpore安装需要nnae或toolkit,以及kernels软件包提供运行时依赖。
前提条件
- 已完成软件包的下载。
- 安装用户为root用户,且具有install.sh的可执行权限。
- 执行机环境上已安装Python3。
- 在待安装环境上准备运行用户。Ascend Deployer在执行安装命令时会自动创建默认运行用户HwHiAiUser,如用户需自行创建可参考手动创建运行用户。
安装步骤
- 以软件包的安装用户登录待安装设备。
- 执行安装命令。
通过下载zip包解压使用Ascend Deployer工具时,需进入ascend_deployer目录,使用bash install.sh命令安装,支持同时输入多个参数批量安装软件,如某个软件安装失败则会停止后续软件的安装。
bash install.sh --install=<package_name_1>,<package_name_2> 其中<package_name_x>为待安装软件,可选范围见下文或可通过执行bash install.sh --help查看全部可用参数。
注:
- 部分软件安装存在依赖,请优先完成系统环境初始化后再安装其他软件,建议按照“sys_pkg>python>npu>CANN、MindIE、MindCluster(性能测试,故障诊断,集群调度)、mis_image、Dify等>deepseek_pd、deepseek_cntr”的顺序进行安装,安装时resources目录下的CANN包版本需和NPU配套。
- 执行安装命令时Ascend Deployer工具会默认检查环境是否满足安装的要求,若出现检查报错信息,请根据其信息评估是否使用--skip_check跳过检查继续安装。如示例所示。
bash install.sh --install=<package_name_1>,<package_name_2> --skip_check安装命令示例如下:
- 系统环境初始化(安装sys_pkg):
bash install.sh --install=sys_pkg 执行--install命令时,请勿重复安装sys_pkg。
- 系统环境初始化(安装python):
bash install.sh --install=python安装完成后可参考配置环境变量-MindCluster7.2.RC1-昇腾社区配置Python环境变量
- NPU固件与驱动(下侧命令任选其一执行):
bash install.sh --install=npubash install.sh --install=driver,firmware如未使用本工具安装的python执行安装命令可能会提示缺少pyasn1包,如执行机可联网,直接安装对应包即可,或者可以使用本工具安装python,并配置python环境变量指定使用本工具安装的python。
- CANN软件(训练&推理&开发调试场景):
bash install.sh --install=kernels,toolkit- CANN软件(边缘推理场景):
bash install.sh --install=nnrt,kernels- CANN软件(训练&推理场景):
bash install.sh --install=nnae,kernels- MindCluster集群调度:
bash install.sh --install=ascend-device-plugin,ascend-docker-runtime,hccl-controller,noded,npu-exporter,volcano,ascend-operator,clusterd,resilience-controller- MindCluster集群调度(MindIO):
bash install.sh --install=mindioMindCluster- 性能测试:
bash install.sh --install=toolbox- MindCluster故障诊断:
bash install.sh --install=fault-diag- MindIE推理引擎:
bash install.sh --install=mindie_image- MIS推理微服务:
bash install.sh --install mis_image 该镜像较大,请确保执行机及待安装服务器家目录(root用户即/root目录)下至少有70GB空间,建议单独安装此软件。
- openGauss向量数据库:
bash install.sh --install opengauss- docker-compose:
bash install.sh --install docker_compose- 资源监控平台:
bash install.sh --install npu_exporter_binary,monitor_plat安装monitor_plat依赖docker-compose,如待安装服务器上未安装docker-compose,请先安装docker-compose。
因拉起容器后需要访问grafana获取uid,安装时请取消服务器的网络代理,如安装失败但通过docker ps可以看到已经拉起prometheus与grafana的容器,并可访问grafana的网页端,可考虑使用ascend_deployer/conf/monitor_plat_config/configuration目录下的replace_datasouce_uid.sh脚本手动更换配置文件的uid。
- vLLM-Ascend推理引擎:
bash install.sh --install vllm_ascend- Dify:
bash install.sh --install dify安装Dify依赖docker-compose,如待安装服务器上未安装docker-compose,请先安装docker-compose
- GPUStack:
bash install.sh --install gpustack安装GPUStack涉及多个镜像,请确保执行机及待安装服务器家目录(root用户即/root目录)下有充足空间。
- 部署DeepSeek PD实例:
bash install.sh --install=deepseek_pd- Docker场景部署DeepSeek:
bash install.sh --install=deepseek_cntr清理软件包
在执行软件安装时,会将待安装软件资源打包拷贝到待安装设备家目录下(root用户即/root目录),安装完成后请根据需要使用如下命令清理待安装设备用户家目录下的resources目录和resources_{arch}.tar,避免家目录存储空间不足,执行机家目录下的resources_{arch}.tar需手动删除。
bash install.sh --clean2.4.5 检查安装结果
安装完成后会在当前路径下生成report目录,包含安装报告report.csv和report.json文件。报告文件中以服务器为维度记录了服务器IP地址、状态等结果信息。
在~/.ascend_deployer/deploy_info下会生成安装进度信息文件deployer_progress_output.json,查看安装过程和状态信息。
安装日志见/ascend-deployer-{version}/ascend_deployer/目录下的install.log和install_operation.log文件。
部分软件安装完成后可通过如下方法查看软件是否正常运行:
资源监控平台
资源监控平台安装完成后可通过master节点的ip与配置的grafana端口号在浏览器访问grafana可视化界面,通过下图所示方式通过预置的仪表板查看各worker节点npu信息。

Dify
Dify安装完成后可以通过"docker compose ps"/"docker-compose ps"命令查看容器是否成功运行,可通过http://{server_ip}:{port}访问Dify web页面,其中server_ip是部署Dify web的主机ip,port为对应的网络端口号。
GPUStack
安装完成会打印生成的初始密码,可通过http://{server_ip}:{port}访问web页面,使用admin为账号与初始密码登录,登录后可修改密码


2.4.6 配置环境变量
当用户完成软件包的安装后,为保证软件的正常使用,需参考相关步骤完成环境变量的配置,详见配置环境变量-MindCluster7.2.RC1-昇腾社区
2.5 升级软件
升级软件可能导致现有业务中断,请选择合适时间谨慎升级。
支持升级的软件及相关指南参见升级前准备-MindCluster7.2.RC1-昇腾社区,增量开发的MIS推理微服务、openGauss向量数据库、资源监控平台、vLLM-Ascend推理引擎、Dify等不支持升级操作,可通过卸载原有软件,重新安装新版本软件的方式进行升级。
2.6 卸载软件
注:卸载软件可能涉及删除容器、删除文件夹等操作,执行卸载软件前请谨慎操作,避免引起信息丢失或数据损坏等问题。
远程连接服务器及配置参数等步骤与前述安装软件类似,在此不再赘述。
前提条件
- 卸载用户为root用户,且具有install.sh的可执行权限。
- 执行机环境上存在Python3。
卸载步骤
- 以软件包的卸载用户登录待卸载设备。
- 执行卸载命令。
通过下载zip包解压使用Ascend Deployer工具时,需进入ascend_deployer目录,使用bash install.sh命令卸载。
bash install.sh --uninstall=<package_name_1>,<package_name_2>如卸载软件需要使用到conf目录下的配置文件,卸载命令需要增加"--copy_config"参数
bash install.sh --uninstall=<package_name_1>,<package_name_2> --copy_config<package_name_x>为待卸载的软件包,可选范围见下文或可通过执行bash install.sh --help查看全部可用参数。
- 执行命令后会提示确认卸载,输入"yes"或"y"确认执行卸载任务,输入其他撤销卸载。
卸载命令示例:
- 卸载MindIE推理引擎:
bash install.sh --uninstall=mindie_image- 卸载MIS推理微服务:
bash install.sh --uninstall mis_image --copy_config- 卸载openGauss向量数据库:
bash install.sh --uninstall opengauss- 卸载资源监控平台:
bash install.sh --uninstall npu_exporter_binary,monitor_plat --copy_confignpu_exporter_binary与monitor_plat可分别单独执行卸载,如可仅卸载monitor_plat,保留npu_exporter
卸载monitor_plat前需配置npu_monitor_config.json文件中的data_path,需与安装时的路径保持一致,否则卸载失败
卸载后data_path目录下的相关配置文件和数据会保留,仅停止掉prometheus与grafana对应的服务
- 卸载vLLM-Ascend推理引擎:
bash install.sh --uninstall vllm_ascend- 卸载Dify:
bash install.sh --uninstall dify卸载Dify前需配置inventory_file文件中的dify_code_path,需与安装时的路径保持一致,否则卸载失败
卸载后dify_code_path目录下的相关文件和数据会保留,仅停止掉Dify的服务
- 卸载GPUStack:
bash install.sh --uninstall gpustack3 新增自定义软件安装部署的参考流程
Ascend Deployer工具支持用户灵活扩展自定义软件的下载、安装、卸载等,如用户所需的软件不在工具当前支持的列表中,可参考本章节自行扩展自定义软件的下载、安装、卸载功能。
3.1 新增自定义软件下载的参考流程
新增软件下载信息json文件
在ascend_deployer/downloader/software目录下新增以软件名_版本命名的json文件存储下载信息,按下划线分割软件名与版本格式,如NpuExporter_7.2.RC1.SPC1.json。
工具会根据software目录下的文件名自动生成对应的可选参数,如NpuExporter_7.2.RC1.SPC1.json即对应NpuExporter==7.2.RC1.SPC1可选参数,同时会生成NpuExporter可选参数,如配置了默认版本,输入NpuExporter时会下载默认版本。
下载软件主要分为软件包与镜像两大类,软件包类json文件内容如下所示,url为对应的下载链接。other列表中可添加任意数量的软件包信息,下载时会依次全部下载。
{
"name": "NpuExporter",
"version": "7.2.RC1.SPC1",
"default": true,
"other": [
{
"filename": "Ascend-mindxdl-npu-exporter_7.2.RC1.SPC1_linux-aarch64.zip",
"url": "https://gitcode.com/Ascend/mind-cluster/releases/download/v7.2.RC1.SPC1/Ascend-mindxdl-npu-exporter_7.2.RC1.SPC1_linux-aarch64.zip",
"sha256": "7b1641adeecd2ccdc68be49cbf82cc16f9bbd79209c014cb16855d54f2477ff2",
"dest": "resources/NpuExporter"
},
{
"filename": "Ascend-mindxdl-npu-exporter_7.2.RC1.SPC1_linux-x86_64.zip",
"url": "https://gitcode.com/Ascend/mind-cluster/releases/download/v7.2.RC1.SPC1/Ascend-mindxdl-npu-exporter_7.2.RC1.SPC1_linux-x86_64.zip",
"sha256": "e613b36b8af370aab6b2da7c09c83dd6be67a03b18c12774da07eaa0d8f870b0",
"dest": "resources/NpuExporter"
}
]
}镜像类json文件如下所示,下载时会根据url对应的标签采用docker pull的方式拉取镜像,该下载方式依赖docker,Windows系统可通过下载Docker Desktop软件来部署docker。
{
"name": "MIS-image",
"version": "qwen3-30b-a3b-800I-A2-7.1.T9-aarch64",
"default": true,
"other": [
{
"filename": "mis_image_qwen3-30b-a3b_800i-a2-7.1.T9-aarch64",
"url": "swr.cn-south-1.myhuaweicloud.com/ascendhub/qwen3-30b-a3b:7.1.T9-aarch64",
"sha256": "",
"dest": "resources/MIS-image"
}
]
}其中参数含义如下所示:
参数名 | 含义 | 约束 |
|---|---|---|
name | 软件名称 | |
version | 软件版本 | |
default | true/false,表示该版本是否为默认版本,为true则表示当前json文件对应的版本为软件默认版本 | |
filename | 文件名 | 对于区分ARM与x86架构的文件,文件名必须包含相应的架构名,ARM为aarch64,x86为x86_64,下载时会根据该标识下载相应架构的文件 |
url | 下载链接/镜像tag | 对于镜像替换为镜像的镜像名:标签 |
sha256 | 文件的SHA256哈希值,用于判断文件是否下载成功 | 可不填,对于镜像无需填写该参数 |
dest | 文件存储地址 | 需在resources/目录下,建议为"resources/软件名" |
修改代码中的元组
- 如新增的软件通过下载链接方式下载且无需区分ARM与x86架构,则无需修改。
- 如新增的软件通过下载链接方式进行下载且需要区分ARM与x86架构,需将软件名添加到ascend_deployer/downloader/other_downloader.py文件中的_SOFTS_COLLECTED_BY_ARCH元组中,下载时会根据该元组以区分架构的方式下载软件,以NpuExporter为例:
_SOFTS_COLLECTED_BY_ARCH = ("CANN", "NPU", "FaultDiag", "MindIE-image","openGauss", "NpuExporter", "DockerCompose") - 如新增镜像下载,需将软件名添加到ascend_deployer/downloader/images_downloader.py文件中的_IMAGES元组中,下载时会根据该元组将对应的软件通过docker pull方式下载镜像,以vLLM-Ascend为例:
_IMAGES = ("MIS-image","GPUStack","vLLM-Ascend","DifyImages")测试验证
Linux系统下在ascend_deployer目录下输入如下命令查看--download的可选参数是否存在新增软件:
bash start_download.sh通过如下命令测试是否可成功下载相应软件。
bash start_download.sh --os-list <OS> [<OS> ...] --download <PKG>|<PKG>==<Version> [<PKG>|<PKG>==<Version> ...]Windows系统下双击start_download_ui.bat启动UI页面,查看是否存在新增软件,通过选择相应软件测试是否可成功完成下载。
3.2 新增自定义软件安装的参考流程
Ascend Deployer工具安装或卸载软件基于Ansible工具实现,每个软件的安装或卸载对应单独的playbook文件、python脚本等,通过添加新的playbook文件及python脚本,可灵活添加新增软件的安装与卸载功能。
以安装openGauss为例描述如何添加新软件的安装功能。
新增Playbook文件
ascend_deployer通过playbooks/install目录下的yml文件来匹配每个软件的安装逻辑

参考如下示例新增yml文件,注意红框中的名字要与后面添加的py脚本名字匹配
vim ascend-deployer/playbooks/install/install_opengauss.yml
参考如下示例将新增yml添加到主安装yml中,并配置对应的tag
vim ascend-deployer/playbooks/process/process_install.yml
新增安装脚本
vim ascend_deployer/library/install_opengauss.py在该脚本中实现具体的安装逻辑,可使用yml传入的参数

配置安装包拷贝逻辑
vim ascend_deployer/scripts/pkg_utils.py在tags_map中填写新增的安装tag对应的安装包目录关键字,安装包关键字,如有额外配置文件,可新增配置文件目录

配置安装tag支持列表
vim ascend_deployer/module_utils/compatibility_config.py在class Tags中新增安装tag,并配置该软件适配的os以及硬件



测试验证
bash install.sh --install {安装tag}3.3 新增自定义软件卸载的参考流程
以mis-image卸载为例展示如何添加新增软件的卸载功能
添加Playbook文件
在playbooks/uninstall目录下新增以uninstall_soft_name命名的yml文件,定义卸载软件任务,如uninstall_mis_image.yml,文件内容参考如下,自定义模块需与具体实现卸载功能的python脚本名称保持一致
- hosts: '{{ hosts_name }}' #指定了Playbook将要在哪些主机上执行,{{ hosts_name }}是一个变量,表示目标服务器的组名,对应于inventory_file中的[worker],即所有[worker]下的服务器均会执行该playbook
name: uninstall mis image #Playbook的描述性名称,用于说明该Playbook的主要目的
tasks: #Playbook中定义任务的开始部分。每个任务都是一个字典,包含任务的详细信息。
- name: uninstall mis image #任务的名称,描述了该任务的目的,在这个例子中,它表示该Playbook用于卸载MIS镜像。
uninstall_mis_image: #一个自定义模块或操作,用于执行卸载MIS镜像的具体操作,该名称需与对应的python脚本文件名保持一致,该模块可自定义参数传递给python脚本使用,本案例定义了tags和resources_dir两个参数
tags: "{{ansible_run_tags}}" #传递给uninstall_mis_image模块的参数
resources_dir: "{{resource_path}}" #参数将资源目录的路径传递给模块,{{resource_path}}是一个变量,表示资源文件所在的路径,为/root/resources
register: uninstall_mis_image_result #用于捕获任务的输出,并将其存储在变量uninstall_mis_image_result中,以便在后续任务中使用
- name: message #第二个任务的名称,用于输出卸载操作的结果。
debug: #该模块用于调试,输出指定变量的值。本案例中用于输出uninstall_mis_image_result变量的值。
var: uninstall_mis_image_result #指定要输出的变量,即卸载操作的结果。
failed_when: uninstall_mis_image_result.rc != 0 #用于定义任务失败的条件。如果uninstall_mis_image_result中的rc(返回码)不等于0,则任务被视为失败。通常,返回码为0表示成功,非0表示失败。完成新增软件卸载的playbook定义后,需在ascend_deployer/playbooks/process/process_uninstall.yml中import该playbook,以uninstall_mis_image.yml为例,即在process_uninstall.yml添加如下内容:
- name: uninstall mis image #导入的Playbook的名称,描述了该Playbook的主要目的,即卸载MIS镜像。
import_playbook: ../uninstall/uninstall_mis_image.yml #用于导入位于../uninstall/uninstall_mis_image.yml路径下的Playbook文件。import_playbook指令将另一个Playbook的内容包含到当前Playbook中,从而实现模块化和代码重用。
tags: mis_image #为导入的Playbook指定了一个标签,该标签需与uninstall_soft_name.yml的soft_name保持一致,即mis_image。这个标签可以用于在运行Playbook时选择性地执行与MIS镜像卸载相关联的任务。新增Python脚本实现卸载功能
在ascend_deployer/library目录下新增以uninstall_soft_name命名的python脚本,实现具体的卸载功能,该名称需要与相应playbook文件中定义的自定义模块名称保持一致,以卸载MIS Image为例,该python脚本名称为uninstall_mis_image.py,在python脚本中可以使用playbook中定义的参数,获取资源目录等参数。

由于MIS Image卸载需要配置文件中的容器名称来停止指定容器,所以需要读取相应的配置文件,在卸载软件时应添加"--copy_config"参数将ascend_deployer/conf目录下的配置文件复制到目标服务器的{{ resource_path }}/conf/目录下(即/root/resources/conf/),在脚本中即可在对应目录下读取配置文件中的相关内容

测试验证
运行卸载指定软件的命令测试是否完成指定软件的卸载,以卸载MIS Image为例,参考命令如下:
bash install.sh --uninstall mis_image --copy_config其中:
- mis_image对应process_uninstall.yml中卸载MIS Image的tags;
- --copy_config表示将ascend_deployer/conf目录下的配置文件复制到目标服务器的{{ resource_path }}/conf/目录下(即/root/resources/conf/),如无需配置文件则去掉该参数;



