关于 huawei-cloud-flexus-l-server-ops
用于运维 Huawei Cloud Flexus L 实例的技能,面向需要管理实例状态、配置、密码和流量的用户。它涵盖查询、生命周期操作与信息修改,并规定了脚本执行和凭证保护流程。
主要功能
- 01列出并查看实例详情
- 02启动、停止或重启实例
- 03重置实例密码
- 04修改实例名称和元信息
- 05查询流量包使用情况
适用场景
- 01检查 Flexus L 实例状态
- 02批量执行生命周期操作
- 03修改实例主机名或描述
- 04查看流量包消耗
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-flexus-l-server-ops安装后在 Claude Code 中输入/huawei-cloud-flexus-l-server-ops确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/iam-policies.mdverification-method.mdscripts/auth.pylifecycle.pyparams.pypassword_unified.pyquery_instances.pyupdate_server.py详细介绍
⚠️ 安全执行规则(最高优先级):
- 所有脚本 MUST 通过 skill action=exec 执行,严禁直接在 shell 中运行
- 严禁在对话中打印包含 AK/SK/Token 的脚本内容或命令
- 严禁创建临时脚本文件,优先使用内联执行(python -c)
- 执行失败时,只返回错误信息,不要重写脚本或打印完整命令
- AK/SK/Token MUST 通过环境变量传递,严禁出现在对话中
- ⚠️ 绝对严禁以任何形式暴露、记录或打印 AK/SK/Token 值——这是至关重要的安全要求
华为云 Flexus L 实例运维
概览
此技能为华为云 Flexus L 实例提供完整的运维能力, 涵盖实例生命周期管理、配置修改、监控查询 及其他核心场景。
架构
OpenClaw Agent → Flexus L Ops Skill → Huawei Cloud SDK → Huawei Cloud Services
│ │ │
│ │ ├─ Flexus L (instance/lifecycle/password)
│ │ └─ BSS (traffic query)
│ │
└─ scripts/ └─ huaweicloudsdk{core,ecs,bss,config}
核心组件:
- Flexus L 服务:弹性云服务器,提供实例管理、生命周期控制、密码重置等功能。
- BSS 服务:商业支持系统,提供流量包使用情况查询
- Python SDK:华为云官方 SDK,封装 API 调用逻辑
- 运维脚本:6 个独立脚本,每个对应一项操作
适用场景
典型问题场景:
- 实例状态查看:需要快速查看账户下所有 Flexus L 实例的运行状态
- 批量操作:需要对多台服务器执行开机、关机、重启操作
- 配置修改:需要修改实例名称、描述、主机名等基本信息
- 密码管理:需要重置实例登录密码
- 流量监控:需要查看流量包剩余量和使用情况
触发关键词:
| 英文关键词 | 中文关键词 |
|---|---|
| Flexus L | Flexus L |
| 华为云运维 | 华为云运维 |
| 查询实例 | 查询实例 |
| 开机/关机/重启 | 开机/关机/重启 |
| 重置密码 | 重置密码 |
| 修改信息 | 修改信息 |
| 查询流量 | 查流量 |
| 流量包 | 流量包 |
| 列出所有服务器 | 查所有服务器 |
| 我的服务器有哪些 | 我的服务器有哪些 |
| 列出所有实例 | 列出所有实例 |
先决条件
1. Python 环境和依赖项
- Python >= 3.8
- huaweicloudsdkcore >= 3.0.0
- huaweicloudsdkecs >= 3.0.0
- huaweicloudsdkbss >= 3.0.0
- huaweicloudsdkconfig >= 3.0.0
- requests >= 2.31.0
2. 安装华为云 SDK
pip3 install huaweicloudsdkcore huaweicloudsdkecs huaweicloudsdkconfig huaweicloudsdkbss \
-i https://repo.huaweicloud.com/repository/pypi/simple
⚠️ 重要:脚本使用规则
不同操作 MUST 使用对应的脚本。不得使用其他脚本的命令。
| 操作 | 必须使用的脚本 | 正确命令 | ❌ 错误命令 |
|---|---|---|---|
| 查询 Flexus L 实例 | query_instances.py | query_instances.py list | password_unified.py list |
| 查询实例详情 | query_instances.py | query_instances.py detail -i <ID> | lifecycle.py list |
| 开机/关机/重启 | lifecycle.py | lifecycle.py stop --instance-id <ID> | query_instances.py stop |
| 重置密码 | password_unified.py | password_unified.py reset --instance-id <ID> --password <pwd> | lifecycle.py reset |
| 修改服务器信息 | update_server.py | update_server.py --instance-id <ID> --name <name> | query_instances.py update |
操作反馈要求
任何生命周期操作(开机/关机/重启)后,MUST 查询最终状态并向用户报告。
反馈格式示例:
✅ Operation completed
Instance: your-instance-name
Status: Running
Public IP: <IP>
这样可确保用户知道操作已成功完成。
脚本说明
功能脚本(4 个脚本)
| 脚本 | 功能 | 命令 |
|---|---|---|
| query_instances.py | 实例查询工具 ⭐ | list、detail、free-resources、traffic、traffic-region |
| lifecycle.py | 生命周期管理 | stop、start、reboot |
| password_unified.py | 重置密码 | test、list、reset |
| update_server.py | 修改服务信息 | --name、--description、--hostname |
辅助脚本(2 个脚本)
| 脚本 | 功能 |
|---|---|
| auth.py | 身份验证管理 |
| params.py | 参数处理 |
核心命令
操作步骤请参阅执行流程。
参数
必需参数:
| 操作 | 必需参数 | 描述 |
|---|---|---|
| 查询实例详情 | instance-id | 实例 ID |
| 启动/停止/重启 | instance-id | 实例 ID(支持多个) |
| 重置密码 | instance-id, password | 实例 ID + 新密码 |
| 修改信息 | instance-id + (name/description/hostname) | 实例 ID + 至少一项修改 |
| 按区域查询流量 | target-region | 目标区域代码 |
| 按 ID 查询流量 | traffic_ids | 流量套餐 ID 列表 |
可选参数:
| 参数 | 描述 | 必需 | 默认值 | 示例 |
|---|---|---|---|---|
| --region | 目标区域代码(支持中文名称) | 否 | cn-north-4 | --region cn-north-4 |
| --ak | 华为云访问密钥 AK(可以是临时 AK) | 否 | HW_ACCESS_KEY 环境变量 | --ak AXXX... |
| --sk | 华为云访问密钥 SK(可以是临时 SK) | 否 | HW_SECRET_KEY 环境变量 | --sk SXXX... |
| --security-token | 临时凭证的安全令牌(使用临时 AK/SK 时必需) | 否 | HW_SECURITY_TOKEN 环境变量 | --security-token XXXX... |
区域参数支持:
- 区域代码:
cn-north-4 - 全称:
North-China-Beijing4 - 简称:
Beijing4、Guangzhou、Shanghai
执行流程
第 1 步:检查现有凭证(自动)
先从环境变量获取凭证并自动检查,无需询问用户。
判断逻辑:
| 凭证状态 | 下一步 |
|---|---|
| ✅ 存在 HW_ACCESS_KEY + HW_SECRET_KEY + HW_SECURITY_TOKEN | 直接执行脚本(推荐:使用临时 AK/SK 身份验证,安全级别更高,传入 --ak --sk --security-token 参数) |
| ✅ 存在 HW_ACCESS_KEY + HW_SECRET_KEY(无 Token) | 直接执行脚本(使用永久 AK/SK 身份验证,传入 --ak --sk 参数) |
| ❌ 未找到环境变量 | 提示用户配置凭证(优先使用环境变量,切勿直接询问) |
| ❌ 身份验证失败 | 提示用户检查或重新配置凭证(优先使用环境变量,切勿直接询问) |
⚠️ 安全建议:
- 优先使用临时凭证:强烈建议使用临时 AK/SK + 安全令牌的方式,安全性更高,凭证会自动过期
- 配置环境变量:应通过环境变量配置凭证(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)
- 保护敏感信息:AK/SK 是敏感信息,请勿在对话中输入或泄露
凭证缺失或身份验证失败提示:
❌ Credentials not configured or authentication failed
Please configure Huawei Cloud credentials. For security, we recommend using temporary AK/SK + Security Token method via environment variables:
- HW_ACCESS_KEY: Access Key AK
- HW_SECRET_KEY: Secret Key SK
- HW_SECURITY_TOKEN: Security Token (Recommended)
⚠️ Security Note: Temporary credentials are more secure, please prefer using them!
**注意:**我们优先从环境变量获取凭证,绝不会要求用户直接输入 AK/SK。不过,如果用户自愿通过其他方式提供凭证(例如在对话中输入或使用配置文件),我们仍支持解析这些凭证。
第 2 步:选择操作
凭证验证通过后,询问用户要执行什么操作:
步骤 3:执行操作
⚠️ 实例验证(当用户提供实例 ID/名称时):
python3 {baseDir}/scripts/query_instances.py free-resources --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
- ✅ 在列表中找到 → 继续执行操作
- ❌ 未找到 → 告诉用户:“这不是 Flexus L 实例。此技能仅支持 Flexus L 实例。”然后参阅查找服务器 ID部分获取指导。
⚠️ 重要说明:
1. 确认实例类型: 执行任何操作前,提醒用户此技能仅支持 Flexus L 实例
2. 服务器 ID 指引: 如果用户未指定要操作的服务器 ID,请引导用户查询所有实例或特定服务器
4.1 列出实例
查询所有区域的实例:
python3 {baseDir}/scripts/query_instances.py list --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
查询特定区域的实例:
python3 {baseDir}/scripts/query_instances.py list --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
4.2 查询实例详情
必需参数:
- 实例 ID(必需)
- 区域代码(可选,默认 cn-north-4)
python3 {baseDir}/scripts/query_instances.py detail --instance-id <ID> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
**⚠️ 错误处理:**如果查询失败并提示“找不到服务器”,且用户未指定区域,请告知用户检查区域、实例类型和 ID。
4.3 批量启动
必需参数:
- 实例 ID(必需,支持多个)
- 区域代码(可选,默认 cn-north-4)
python3 {baseDir}/scripts/lifecycle.py start --instance-id <ID1> --instance-id <ID2> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
4.4 批量停止
⚠️ 危险操作:必须确认两次
🔒 实例类型限制:此操作仅支持 Flexus L 实例,不支持所有 ECS 实例。执行前必须验证实例类型。
必需参数:
- 实例 ID(必需,支持多个)
- 区域代码(可选,默认 cn-north-4)
执行前必须确认两次:
- 告知用户停止操作的后果(服务中断、数据丢失风险)
- 如果停止的服务器当前正在运行 OpenClaw,还必须额外警告(对话中断,需要手动重启)
- 仅在用户回复“confirm stop”后执行
python3 {baseDir}/scripts/lifecycle.py stop --instance-id <ID1> --instance-id <ID2> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
4.5 批量重启
⚠️ 危险操作:必须确认两次
🔒 实例类型限制:此操作仅支持 Flexus L 实例,不支持所有 ECS 实例。执行前必须验证实例类型。
必需参数:
- 实例 ID(必需,支持多个)
- 区域代码(可选,默认 cn-north-4)
- 重启类型(可选):SOFT(正常重启,默认)或 HARD(强制重启)
执行前必须确认两次:
- 告知用户重启操作的后果(短暂服务中断、内存数据丢失)
- 如果重启的服务器当前正在运行 OpenClaw,还必须额外警告(对话短暂中断,将自动恢复)
- 仅在用户回复“confirm reboot”后执行
python3 {baseDir}/scripts/lifecycle.py reboot --instance-id <ID1> --instance-id <ID2> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
4.6 重置密码
必需参数:
- 实例 ID(必需)
- 新密码(必需)
- 长度为 8-26 个字符
- 必须至少包含以下类别中的 3 类:大写字母、小写字母、数字、特殊字符
- 不能包含用户名或反向排列的用户名
- 不能包含 3 个或更多连续相同的字符
- 区域代码(可选,默认 cn-north-4)
⚠️ 重要:重置密码后,必须重启实例,新密码才会生效。
重启前必须与用户确认:
- 告知用户密码重置成功
- 提醒用户相关后果:短暂服务中断、内存数据丢失
- 如果重启的服务器当前正在运行 OpenClaw,还必须额外警告(对话短暂中断,将自动恢复)
- 仅在用户回复“confirm reboot”后执行重启
python3 {baseDir}/scripts/password_unified.py reset --instance-id <ID> --password <new_password> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
重启命令:
python3 {baseDir}/scripts/lifecycle.py reboot --instance-id <ID> --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
4.7 修改实例信息
必需参数:
- 实例 ID(必需)
- 区域代码(可选,默认 cn-north-4)
- 修改参数(至少一个):
- name:实例名称(1-64 个字符,支持中文、字母、数字、_-、.)
- description:描述(0-85 个字符,不能包含 <>)
- hostname:主机名(1-64 个字符)
python3 {baseDir}/scripts/update_server.py --instance-id <ID> --name "new_name" --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
4.8 查询流量包
选项 1:按流量包 ID 查询
必填参数:
- 流量包 ID(必填)
⚠️ 特别说明:流量包查询默认使用北京一(cn-north-1)区域,流量包 ID 可以来自任何区域
python3 {baseDir}/scripts/query_instances.py traffic <traffic_id_1> <traffic_id_2> --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
选项 2:按区域查询 ⭐ 推荐
必填参数:
- 目标区域(必填)
python3 {baseDir}/scripts/query_instances.py traffic-region --target-region cn-east-3 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
查找服务器 ID
如果用户询问“如何查找服务器 ID”或“不知道服务器 ID”,首先提供控制台查询步骤:
You can find server ID through the following ways:
Option 1: Via Huawei Cloud Console
1. Login to Huawei Cloud Console
2. Go to Flexus Application Server L instance list
3. Click instance name to enter details page
4. In basic information, click "Cloud Host VM"
5. View cloud host ID in cloud host information
6. Click copy button after ID to quickly copy
Help Document: https://support.huaweicloud.com/intl/zh-cn/flexusl_faq/faq_01_0003.html
然后追加以下内容,提供自动查询选项:
Option 2: I can also help query all servers under your account
Would you like me to list all instances under your account? I can query directly for you.
如果用户同意,执行列出所有实例的操作:
python3 {baseDir}/scripts/query_instances.py list --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
区域支持
常见区域代码
| 区域代码 | 区域名称 |
|---|---|
| cn-north-4 | 华北-北京四 |
| cn-north-1 | 华北-北京一 |
| cn-south-1 | 华南-广州 |
| cn-east-3 | 华东-上海一 |
| ap-southeast-1 | 中国-香港 |
| ap-southeast-2 | 亚太-新加坡 |
区域名称转换
此技能支持自动转换区域名称,可以使用中文名称或英文代码:
# Use region code
python3 {baseDir}/scripts/query_instances.py list --region cn-north-4 --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
# Use region name (auto-convert)
python3 {baseDir}/scripts/query_instances.py list --region "North-China-Beijing4" --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
python3 {baseDir}/scripts/query_instances.py list --region "Beijing4" --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
python3 {baseDir}/scripts/query_instances.py list --region "Guangzhou" --ak "$HW_ACCESS_KEY" --sk "$HW_SECRET_KEY" [--security-token "$HW_SECURITY_TOKEN"]
流量包查询特别说明
⚠️ 流量包查询默认使用北京一(cn-north-1)区域
- 流量包查询不支持 --region 参数
- 流量包 ID 可以来自任何区域
- 查询时会自动使用北京一地区域
注意事项
- 实例 ID 是对应 Flexus L 实例的云主机 ID
- 区域默认为 cn-north-4(北京四)
- AK/SK 安全要求:
- ✅ 必须通过环境变量(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)存储
- ❌ 不要存储在任何配置文件中
- 停止/重启安全要求:
- ✅ 必须进行两次确认——未经用户确认不得直接执行
- ✅ 只能操作 Flexus L 实例——不能对所有 ECS 实例执行操作,必须验证实例类型
- ✅ 必须告知操作后果
- ✅ 如果是当前服务器,必须额外发出警告
- ❌ 绝不能对所有 ECS 实例执行批量操作——仅支持 Flexus L 实例
参考资料
技能参考文档
此技能包含以下参考文档: