Ascend 环境检测
触发条件
当用户提出以下需求时激活此 skill:
- 询问集群状态 / K8s 集群状态
- 执行环境检测 / Ascend 环境检查
- 检查 NPU 设备状态
- 验证节点标签配置
重要前提/约束
envCheck.sh依赖kubectl(这些依赖在脚本实际运行的那台机器上必须存在,部分检测内容依赖jq工具,非强制,如需要jq工具但没有时,可以提示用户安装)- 不支持在windows系统上执行。
- 不要在返回内容里泄露用户的密码/私钥内容;日志里需要对敏感字段做脱敏。
必需信息
执行前必须向用户获取:
- Master IP: K8s master 节点的 IP 地址
- 用户名: SSH 登录用户名(通常为 root)
- 认证方式(二选一):
- 密码: SSH 登录密码
- 密钥路径: SSH 私钥文件路径(如
~/.ssh/id_rsa)
连接方式
方式一:密码认证
检查集群状态,IP 192.168.9.143,用户 root,密码 ***
方式二:SSH 密钥认证
检查集群状态,IP 192.168.9.143,用户 root,密钥 ~/.ssh/id_rsa
密钥方式无需提供密码,适合已配置 SSH 密钥登录的环境。
执行方式
- 通过 SSH 连接到 master 节点(密码或密钥)
- 上传
scripts/envCheck.sh到目标主机/tmp/目录,并在文件名后增加当前时间,如/tmp/envCheck_20260316_174737.sh - 执行脚本并输出执行结果(不做任何修改或摘要)
- 对结果进行摘要、解释和格式化,预测下一步可能需要的操作
- 执行结束后,删除目标主机上上传的临时脚本(保证只安全删除对应脚本,不得删除其他文件)
脚本参数
envCheck.sh 支持以下参数:
用法: ./envCheck.sh [期望NPU卡数量] [产品类型] [-r|--resources]
| 参数 | 说明 | 默认值 |
|---|---|---|
| 期望NPU卡数量 | 预期的 NPU 卡数量 | 16 |
| 产品类型 | 产品配置类型 | none |
| -r, --resources | 启用内存和 CPU 资源检查 | 关闭 |
可选产品类型
| 类型 | 说明 |
|---|---|
| none | 不检测标签(默认) |
| full-910 | Atlas 800 训练服务器(NPU满配) |
| half-910 | Atlas 800 训练服务器(NPU半配) |
| a2-pod | Atlas 800T A2 / Atlas 900 A2 PoD |
| a3-superpod | Atlas 900 A3 SuperPoD 超节点 |
| a3-box8 | A200T A3 Box8 超节点服务器 |
| a2-infer | Atlas 800I A2 推理服务器 |
| a2-box | A200I A2 Box 异构组件 |
| a2-box16 | Atlas 200T A2 Box16 异构子框 |
| train-card | 训练服务器(Atlas 300T 训练卡) |
| infer-card | 推理服务器(Atlas 300I 推理卡) |
| infer-series | Atlas 推理系列产品 |
| soc-core | Atlas 200I SoC A1 核心板 |
执行示例
密码认证:
检查集群状态,IP 192.168.9.143,用户 root,密码 ***
密钥认证:
检查集群状态,IP 192.168.9.143,用户 root,密钥 ~/.ssh/id_rsa
带脚本参数:
检查集群状态,8卡 half-910 配置,检查资源
输出要求
先直接原样输出 envCheck.sh 的执行结果,包括:
- 所有检测项的输出
- 错误信息(如有)
- 最终检测结果
再对输出做摘要、解释或格式化,以及下一步可能需要的操作。
技术实现
密码认证方式
# 1. 上传脚本
sshpass -p '<password>' scp -o StrictHostKeyChecking=no \
scripts/envCheck.sh <user>@<ip>:/tmp/envCheck.sh
# 2. 执行脚本
sshpass -p '<password>' ssh -o StrictHostKeyChecking=no \
<user>@<ip> "chmod +x /tmp/envCheck.sh && bash /tmp/envCheck.sh <args>"
SSH 密钥认证方式
# 1. 上传脚本
scp -o StrictHostKeyChecking=no -i <key_path> \
scripts/envCheck.sh <user>@<ip>:/tmp/envCheck.sh
# 2. 执行脚本
ssh -o StrictHostKeyChecking=no -i <key_path> \
<user>@<ip> "chmod +x /tmp/envCheck.sh && bash /tmp/envCheck.sh <args>"
依赖
- 本地:
sshpass(密码认证时需要)ssh/scp(密钥认证时使用)
- 远程:
kubectl,jq(可选,如无 jq 部分检测项会降级)
Resources
scripts/
envCheck.sh- 主检测脚本,检查 K8s 集群、NPU 设备、节点标签、资源状态等