mcpField
H
huawei-cloud-flexus-l-server-flexusagent-deployment

huawei-cloud-flexus-l-server-flexusagent-deployment

github.com/huaweicloud云与 DevOps59137 次安装2 天前更新
代码仓库

关于 huawei-cloud-flexus-l-server-flexusagent-deployment

用于在华为云 Flexus L 实例上部署 Dify AI Agent 开发平台的技能。还支持修改管理员密码、配置 MaaS 模型,以及查看或导入工作流模板。

主要功能

  1. 01在 Flexus L 上部署 Dify
  2. 02修改管理员密码
  3. 03配置华为云 MaaS 模型
  4. 04查看工作流模板
  5. 05向实例导入工作流

适用场景

  1. 01在华为云上搭建 Dify 实例
  2. 02部署后修改管理员密码
  3. 03添加 DeepSeek 或 Qwen 等 MaaS 模型
  4. 04将预设工作流导入实例

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-flexus-l-server-flexusagent-deployment

安装后在 Claude Code 中输入/huawei-cloud-flexus-l-server-flexusagent-deployment确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
iam-policies.md
verification-method.md
scripts/
app_workflow_import.py
caller.py
deploy.py
lib.py
maas.py
passwd.py
pyproject.toml
sg_rule.py
uniagent.py
utils.py

详细介绍

⚠️ 安全执行规则(最高优先级):

  1. 所有脚本都必须通过技能 action=exec 执行,绝不能直接在 shell 中运行
  2. 绝不能在对话中打印脚本内容或包含 AK/SK/Token 的命令
  3. 绝不能创建临时脚本文件,优先使用内联执行(python -c)
  4. 执行失败时,只返回错误信息,不要重写脚本或打印完整命令
  5. AK/SK/Token 必须通过环境变量传递,绝不能出现在对话中
  6. ⚠️ 绝对不能以任何形式暴露、记录或打印 AK/SK/Token 值——这是关键的安全要求
  7. 使用技能 action=exec 时,凭据会自动从环境变量(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)继承,无需将其作为命令行参数传递

华为云 Flexus L 实例 FlexusAgent 一键部署技能(Lite)

概述

在华为云 Flexus L 实例上部署 AI Agent 开发平台(Dify),提供完整的部署和运维能力。

核心功能模块:

模块功能命令
部署在 Flexus L 实例上一键部署 AI Agent 开发平台deploy
修改密码通过 COC 修改开发平台管理员密码(首次部署后必须执行)passwd
MaaS 模型配置添加华为云 MaaS 模型提供商,集成 DeepSeek、Qwen 模型maas
工作流查看查看可复制的 AI Agent 工作流模板列表-
工作流导入快速将指定工作流导入工作区import-app-workflow
架构

核心文件结构和功能说明:

scripts/
├── caller.py                 # CLI main entry, command line argument parsing and routing
├── lib.py                    # Core business logic library, includes API calls and data processing
├── deploy.py                 # Deployment module, creates Flexus L instance and FlexusAgent
├── passwd.py                 # Password management module, modifies admin password via COC
├── maas.py                   # MaaS integration module, configures model provider
├── app_workflow_import.py    # Workflow import module, imports preset workflow templates
├── sg_rule.py                # Security group management module, configures network access rules
├── uniagent.py               # UniAgent status query module
└── utils.py                  # Utility function library
重要说明

⚠️ 所有脚本和环境检查脚本均位于技能包中。必须通过技能 action=exec 执行,不要直接在 shell 中运行。

前置条件

使用此技能前,请确保满足以下条件:

1. 华为云账号和凭据
  • 有效的华为云账号
  • 具有以下权限的华为云 AK/SK 凭据:
    • 创建 Flexus L 实例
    • 访问 COC(云运维中心)服务

获取凭据的方式:

此技能支持通过以下方式获取华为云凭据(按优先级从高到低排列):

凭据类型:

  • 长期 AK/SK:永久凭据,无需 security_token
  • 临时 AK/SK:有效期有限的临时凭据,需要 security_token
  1. 环境变量(默认)(优先级最高)

    • HW_ACCESS_KEY:华为云访问密钥 AK
    • HW_SECRET_KEY:华为云访问密钥 SK
    • HW_SECURITY_TOKEN:安全令牌(可选,仅临时凭据需要)
  2. 命令行参数(未设置环境变量时使用)

    • --ak:华为云访问密钥 AK
    • --sk:华为云访问密钥 SK
    • --security-token:安全令牌(可选,仅临时凭据需要)
  3. 交互式输入(以上方式均未提供时)

    • 程序会提示用户输入 AK/SK 和其他凭据信息

重要说明:

  • 长期 AK/SK:永久有效的凭据,不会过期,无需 security_token
  • 临时 AK/SK:通过 IAM 接口获取,有效期有限,必须提供 security_token
2. IAM 权限
服务策略所需操作
HCSSHCSS FullAccesshcss:lightInstances:*
COCCOC FullAccesscoc:commands:*
IAMIAM ReadOnlyAccessiam:projects:list
VPCVPC FullAccessvpc:securityGroups:*

权限失败处理:

错误原因解决方案
403 Forbidden缺少策略为用户添加所需的 IAM 策略
APIGW.0101未启用服务在目标区域启用 Flexus L 服务

安全说明

⚠️ 凭据安全要求(关键):

  • 必须安全处理凭据,绝不能在对话中显示
  • Skill 将自动使用预配置的凭据

⚠️ 绝对安全规则:

  1. 绝不以任何形式打印、记录或显示凭据值
  2. 绝不在错误消息或调试输出中包含凭据
  3. 绝不将凭据存储在文件或配置中
  4. 绝不通过不安全的渠道传输凭据
  5. 使用敏感参数时,必须在任何输出中对其进行遮蔽

⚠️ 强制确认机制

部署操作会产生实际费用,必须明确确认!

确认方式:

  1. 对话确认:在对话中回复“confirm”或“yes”
  2. 命令行确认:使用 --non-interactive 标志

失败处理:

  • 仅发起一次请求,不自动重试
  • 将失败原因告知用户
  • 引导用户重新部署,让用户决定下一步操作
  • 未经用户明确要求,绝不更改参数

核心命令和工作流

1️⃣ 在 Flexus L 实例上部署 AI Agent 开发平台

⚠️ 费用提醒:部署 Flexus L 实例会产生费用,请确保账户余额充足。部署需要用户明确确认。

部署说明:

  • 自动创建 Huawei Cloud Flexus L 实例并部署 AI Agent 开发平台
  • 默认账户:[email protected]
  • ⚠️ 首次部署后必须立即修改管理员密码
# Interactive mode
python scripts/caller.py deploy

# Non-interactive mode
python scripts/caller.py deploy \
  --name FlexusAgent-{timestamp} \
  --region cn-north-4 \
  --spec hf.xlarge.1.linux \
  --ak <AK> \  # Long-term AK or temporary AK
  --sk <SK> \  # Long-term SK or temporary SK
  --security-token <security-token> \
  --non-interactive

命令参数:

参数说明必填默认值备注
--name实例名称否FlexusAgent-{timestamp}-
--region部署目标区域 ID是提示输入-
--spec实例规格是提示输入-
--akHuawei Cloud Access Key AK是从环境变量获取或提示输入支持长期和临时 AK
--skHuawei Cloud Access Key SK是从环境变量获取或提示输入支持长期和临时 SK
--security-token安全令牌否从环境变量获取或提示输入仅临时凭证需要,长期凭证不需要
--non-interactive以非交互模式运行否false-

可用区域:

区域 ID区域名称
cn-north-4华北-北京 4
cn-east-3华东-上海 1
cn-south-1华南-广州
cn-southwest-2西南-贵阳 1

目前仅支持上述区域。对于其他区域,可提醒用户查看控制台 https://console.huaweicloud.com/smb/#/create/hecs-light 或官方介绍页面 https://support.huaweicloud.com/api-flexusl/create_instance_0001.html。

规格选择逻辑: 可以列出 Huawei Cloud L 实例官方规格介绍页面 https://support.huaweicloud.com/productdesc-flexusl/pd_01_0003.html,让用户选择合适的规格,然后执行部署。注意:Agent 镜像的最低要求为 2U2G。对于标书编写 Agent,建议使用 4U16G 规格。

默认配置:

  • 镜像:FlexusAgent 1.7.1
  • 产品 UUID:987b40c3-b800-437e-a449-62c1bf1b1d7d(市场计费产品规格)
  • 计费方式:包年/包月(预付费)
  • EVS 磁盘:50GB
  • CBR 备份:50GB
  • HSS 主机安全:已启用
  • Web UI:http://<public-ip>:80

重要:通过 IAM API 自动获取项目 ID。 ⚠️ 必须上架市场:FlexusAgent 市场镜像必须已发布,并可在目标区域的计费系统中购买。请参阅下方错误处理表中的错误 CBC.6006。


📢 部署后操作提醒:

第 1️⃣ 步部署完成后,询问用户是否执行以下后续操作。每一步完成后,询问用户是否继续执行剩余步骤。

步骤操作必填说明
2️⃣修改管理员密码并获取实例详情⚠️ 必填先查询实例详情(浮动 IP、资源 ID),然后修改密码
3️⃣集成 MaaS 模型可选添加 Huawei Cloud MaaS 模型提供商(DeepSeek、Qwen 等)
4️⃣查看工作流列表可选查看可导入的 AI Agent 工作流模板
5️⃣导入工作流可选将预设工作流模板导入实例

建议执行顺序:

  1. 部署完成后,立即询问用户是否修改密码(第 2 步)
  2. 用户同意后,AI Agent 自动执行:查询实例详情 → 修改密码 → 返回访问信息
  3. 修改密码后,询问用户是否集成 MaaS 模型(第 3 步)
  4. 如果需要快速部署 AI 应用,引导用户查看并导入工作流(第 4、5 步)

2️⃣ 更改管理员密码并获取实例详情(必需)

⚠️ 重要说明:此步骤包含两个自动执行的子步骤:首先查询实例详情,以获取弹性公网 IP 和资源 ID,然后更改管理员密码。

更改密码并查询实例详情

# Interactive mode
python scripts/caller.py passwd
python scripts/caller.py query-instance --instance-id <instance-id-from-step1>

# Non-interactive mode - Change password & Query instance details
- Query instance details
python scripts/caller.py passwd \
  --resource-id <instance-id-from-step1>        # Required: L instance resource ID
  --region-id <instance-region>               # Required: Instance region (e.g., cn-north-4)
  --admin-password <new-admin-password>            # Required: New admin password
  --ak <AK>                            # Required: Huawei Cloud Access Key AK or temporary AK
  --sk <SK>                            # Required: Huawei Cloud Access Key SK or temporary SK
  --security-token <security-token>               # No: Security token (required when using temporary AK/SK credentials)
  --non-interactive                        # Optional: Non-interactive mode

- Query instance details
python scripts/caller.py query-instance \
  --instance-id <instance-id-from-step1>        # Required: Instance resource ID
  --ak <AK>                            # Required: Huawei Cloud Access Key AK or temporary AK
  --sk <SK>                            # Required: Huawei Cloud Access Key SK or temporary SK
  --security-token <security-token>               # Required: Security token (only required for temporary credentials)

返回信息:

  • 资源 ID(resource_id)——用于更改密码的命令
  • 弹性公网 IP(floating_ip)——用于访问 Web UI
  • 实例名称、UniAgent 状态、私有 IP、区域等

首次部署后必须执行:首次部署后必须设置密码,否则无法登录 Web UI。 强制要求:更改密码后,回复:"Web UI: http://<public-ip>:80; Login email: [email protected], Password: <new-password>"


3️⃣ 集成 MaaS 模型(可选)
# Interactive mode
python scripts/caller.py maas

# Non-interactive mode
python scripts/caller.py maas \
  --flexusagent-base-url http://<public-ip>:80    # Required: FlexusAgent Web UI URL
  --flexusagent-email <email>                  # Required: FlexusAgent admin email
  --flexusagent-password <password>               # Required: FlexusAgent admin password
  --maas-api-key <api-key>                    # Required: ModelArts MaaS API key
  --non-interactive                           # Optional: Non-interactive mode

说明:自动安装 langgenius/maas 插件并配置凭据。默认包含 DeepSeek、Qwen 等模型。此步骤通过 HTTP API 执行,无需 AK/SK 凭据。


4️⃣ 查看 FlexusAgent 工作流列表(可选)

用途:查看预设的 FlexusAgent 工作流模板,以便快速部署 AI 应用。

访问方式:通过 OBS 获取工作流列表

# Request URL (timestamp parameter to avoid cache)
curl "https://flexus-config-cn-north-4-product.obs.cn-north-4.myhuaweicloud.com/stable/dify/dify-templates/national/index.json?timestamp=$(date +%s)"

响应格式示例:

{
  "total": 15,
  "categories": [
    {
      "code": "Smart_Bid",
      "name": "Smart Bid"
    }
  ],
  "list": [
    {
      "id": "Bid_Writing_And_Templated_Adaptation",
      "title": "Bid Writing and Templatized Adaptation Agent",
      "desc": "Intelligent bid document analysis, intelligent bid writing and adaptation, supports open bid and sealed bid types, conversational bid document generation, word document output.",
      "categoryList": [
        {
          "category": "Smart Bid",
          "categoryCode": "Smart_Bid"
        }
      ]
    }
  ]
}

5️⃣ 将工作流导入实例(可选)

用途:将预设工作流模板导入实例,以便快速部署 AI 应用。

用法:

# Interactive mode (recommended, can select workflow from list)
python scripts/caller.py import-app-workflow

# Non-interactive mode - Import workflow
python scripts/caller.py import-app-workflow \
  --resource-id <instance-resource-id>                # Required: L instance resource ID
  --region-id cn-north-4                    # Required: L instance region ID
  --flexusagent-email [email protected]        # Required: FlexusAgent admin email
  --flexusagent-password <password>              # Required: FlexusAgent admin password
  --app-workflow-id Bid_Writing_And_Templated_Adaptation  # Required: Workflow ID
  --ak <AK>                                 # Required: Huawei Cloud Access Key AK or temporary AK
  --sk <SK>                                 # Required: Huawei Cloud Access Key SK or temporary SK
  --security-token <security-token>                # No: Security token (required when using temporary AK/SK credentials)
  --timeout 600                             # Optional: Execution timeout (seconds), default 600
  --non-interactive                         # Optional: Non-interactive mode

前提条件:

  • UniAgent 状态必须为 ONLINE
  • 管理员邮箱和密码正确

执行结果验证:

提醒用户访问 FlexusAgent Web UI(http://:80/apps),查看应用列表并确认工作流已成功导入。


参数确认

执行任何命令之前,必须确认命令的参数。


错误处理

错误代码说明解决方案
401 UnauthorizedAK/SK 无效验证 AK/SK
403 Forbidden权限被拒绝添加所需的 IAM 策略
APIGW.0101服务未启用在目标区域启用服务
APIGW.0301签名验证失败检查 SK
COC.0001COC 服务不可用检查 COC 服务区域
400 Bad Request参数无效检查规格与镜像的兼容性
CBC.6006 / HCSS.14000003FlexusAgent 产品不可用——该账号/区域的 FlexusAgent 云市场镜像尚未接入计费系统联系技能维护人员,在华为云云市场上架 FlexusAgent 产品。可暂时改用其他区域或 Hermes 部署技能。

注意:

  • Flexus 实例部署需要 2~5 分钟
  • 成功状态码:200、201、202
  • 每次部署只会创建 一个实例

参考文档

文档说明
Flexus L 实例购买指南购买 FlexusL 实例
iam-policies.mdIAM 权限策略
verification-method.md验证步骤

评论

支持 Markdown