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

huawei-cloud-flexus-l-server-openclaw-deployment

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

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

用于在 Huawei Cloud Flexus L 实例上部署和管理 OpenClaw 的技能,面向需要配置 AI Agent 平台的运维和开发人员。它支持创建实例,并通过 COC 安装模型和消息渠道。

主要功能

  1. 01创建 Flexus L 实例并部署 OpenClaw
  2. 02通过 COC 配置模型
  3. 03安装 WeCom、Feishu、DingTalk 和 QQ 渠道
  4. 04部署前检查 Gateway 和 UniAgent 状态
  5. 05支持交互式与非交互式操作

适用场景

  1. 01在 Flexus L 实例上部署 OpenClaw
  2. 02为 OpenClaw 安装或切换模型
  3. 03配置消息渠道
  4. 04通过脚本批量部署实例

安装

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

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

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

包含的文件

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

references/
iam-policies.md
verification-method.md
scripts/
caller.py
channels.py
deploy.py
gateway.py
lib.py
models.py
pyproject.toml
uniagent.py
utils.py

详细介绍

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

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

huawei-cloud-flexus-l-server-openclaw-deployment

概述

此技能支持一键将 OpenClaw AI Agent 平台部署到华为云 Flexus L 实例。它提供完整的 OpenClaw 实例管理工作流,涵盖从初始部署到部署后配置的所有环节,包括:

  • 自动创建实例
  • 通过 COC(云运维中心)安装模型
  • 通过 COC(云运维中心)安装渠道(企业微信、飞书、钉钉、QQ)
  • 安装前自动检查前置条件(Gateway 和 UniAgent 状态)
使用场景
场景描述
企业 AI 助手搭建企业需要快速部署 AI Agent 平台,用于内部问答、客服等场景
多渠道机器人集成需要将多个消息渠道(企业微信、飞书、钉钉)集成到统一的 AI 助手中
快速集成大模型现有 OpenClaw 实例需要快速切换或添加不同的大模型(DeepSeek、Qwen 等)
自动化运维部署需要通过脚本自动将 OpenClaw 实例批量部署到多个区域
典型使用场景

用户可能会说:

  1. "我想在 Flexus L 实例上安装 OpenClaw"
  2. "我想在已部署的 OpenClaw 上配置 DeepSeek 模型"
  3. "帮我部署已配置飞书渠道的 OpenClaw"

前置条件

账户要求
  • 华为云 AK/SK 凭据,需具有以下权限:
    • 创建 Flexus L 实例
    • 访问 COC(云运维中心)服务

凭据获取方式:

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

凭据类型:

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

    • HW_ACCESS_KEY:华为云 Access Key AK
    • HW_SECRET_KEY:华为云 Access Key SK
    • HW_SECURITY_TOKEN:安全令牌(可选,仅临时凭据需要)
  2. 用户指定的配置文件或其他环境变量(默认环境变量不可用时使用)

    • 用户在交互过程中指定的配置文件路径或其他环境变量
  3. 交互式输入(未提供上述两种方式时使用)

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

重要说明:

  • 长期 AK/SK:永久凭据,不会过期,无需提供 security_token
  • 临时 AK/SK:通过 IAM 接口获取,有效期有限,必须提供 security_token
架构图

此技能基于多项华为云服务构建,涉及以下云服务和组件:

User/Agent      ──────▶│   Flexus L Instance   │──────▶│   OpenClaw App    │──────▶│ Model Config     │ ──────▶│  Channel Config     │ 
(Skill caller)           (Target Host)               (AI Agent Platform)          (API_BASE/KEY)       (WeCom/Feishu/DingTalk/QQ)            

组件说明:

  • 用户/Agent:技能调用方,通过自然语言或 API 触发 OpenClaw 部署操作
  • Flexus L 实例:华为云弹性云服务器,作为 OpenClaw 的部署目标主机
  • OpenClaw 应用:运行在 Flexus L 实例上的 AI Agent 协作平台
  • 模型配置:外部大模型服务的配置(API_BASE、API_KEY、MODEL_IDS、PROVIDER)
  • 渠道配置:消息渠道配置(企业微信、飞书、钉钉、QQ)

如何使用此技能

命令执行和说明
1. 部署 OpenClaw 实例(创建华为云 Flexus L 实例并部署 OpenClaw AI Agent 平台)— 两种命令模式:

命令 1:交互模式(程序将逐步提示输入所需参数)

python scripts/caller.py deploy

命令 2:非交互模式

# Using long-term AK/SK (no security-token needed)
python scripts/caller.py deploy --name openclaw-{timestamp} --region cn-north-4 --ak <AK> --sk <SK> --non-interactive

# Using temporary AK/SK (security-token required)
python scripts/caller.py deploy --name openclaw-{timestamp} --region cn-north-4 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive

参数说明:

参数说明是否必填(非交互模式)默认值(交互模式)示例
--nameOpenClaw 实例名称否openclaw-{timestamp}--name openclaw-1780689482000
--regionL 实例(OpenClaw 部署服务器)所在的目标区域 ID否cn-north-4--region cn-north-4
--ak华为云访问密钥 AK(支持长期和临时密钥)是提示输入--ak AXXX...
--sk华为云访问密钥 SK(支持长期和临时密钥)是提示输入--sk SXXX...
--security-token临时凭证的安全令牌(可选,仅临时 AK/SK 必填)否提示输入--security-token XXXX...
--non-interactive启用非交互模式否false--non-interactive

注意:截至 2026 年 6 月之前,OpenClaw 仅支持在以下区域部署(部署到其他区域之前,可提醒用户前往官网查看最新支持的区域):中国北部-北京四(cn-north-4)、中国东部-上海一(cn-east-3)、中国南部-广州(cn-south-1)、中国西南-贵阳一(cn-southwest-2)

命令示例:

# Example 1: Deploy with default configuration (interactive, will prompt for required parameters)
python scripts/caller.py deploy

# Example 2: Non-interactive mode deployment (suitable for automation scripts, creates directly without user confirmation)
python scripts/caller.py deploy --name openclaw-1780689482000 --region cn-north-4 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive

部署 OpenClaw 实例时华为云 Flexus L 实例的默认配置

配置项默认值说明
镜像OpenClaw 2026.1.30OpenClaw 应用镜像版本
规格方案hf.small.1.linux 或 ahf.small.1.linux北京/上海/广州使用 hf.small.1.linux,贵阳使用 ahf.small.1.linux
计费模式包月prePaid 模式
EVS 磁盘50GB系统盘大小
CBR 备份50GB云备份容量
HSS 主机安全已启用主机安全服务

执行结果和状态码说明:

  • 成功时返回订单 ID 和实例 ID(资源 ID,用于后续安装模型和渠道)
  • 创建实例大约需要 2 分钟,可在华为云控制台查看进度。创建实例期间,模型和渠道的安装不会受到影响,可直接执行后续命令。 状态码说明:状态码“200”、“201”、“202”均表示实例创建成功。

2. 在已安装 OpenClaw 的 L 实例上配置(安装)大模型参数——两种命令模式(需要先部署 OpenClaw 实例)

命令 1:交互模式(程序会逐步提示输入资源 ID、区域、模型和其他参数)

python scripts/caller.py maas

命令 2:非交互模式

# Using long-term AK/SK (no security-token needed)
python scripts/caller.py maas --resource-id <Instance Resource ID> --region-id cn-north-4 --model-params '<Model configuration parameters>' --ak <AK> --sk <SK> --non-interactive

# Using temporary AK/SK (security-token required)
python scripts/caller.py maas --resource-id <Instance Resource ID> --region-id cn-north-4 --model-params '<Model configuration parameters>' --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive

参数说明:

参数说明必填(非交互模式)默认值(交互模式)示例
--resource-idL 实例资源 ID(部署 OpenClaw 实例后返回的实例 ID)是提示输入--resource-id 0e1234567890abcdef
--region-idL 实例所在区域的 ID,与部署实例时选择的区域一致是提示输入--region-id cn-north-4
--model-params模型配置参数(JSON 格式),注意:参数必须使用有效的 JSON 格式,键和值必须用双引号括起来是提示输入--model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2"]}'
--ak华为云访问密钥 AK(支持长期和临时密钥)是提示输入--ak AXXX...
--sk华为云访问密钥 SK(支持长期和临时密钥)是提示输入--sk SXXX...
--security-token临时凭证的安全令牌(可选,仅临时 AK/SK 必填)否提示输入--security-token XXXX...
--timeout脚本执行超时时间(秒)否600--timeout 900
--non-interactive启用非交互模式否false--non-interactive

model-params 字段说明:

字段说明必填
provider模型提供商名称(例如,“huawei”)或 API 地址(例如,“https://api.openai.com/v1”)是
api_key模型 API 密钥是
model_ids要安装的模型 ID 数组(不能为空),例如,["gpt-4", "gpt-3.5-turbo"]是

命令示例:

# Example 1: Install Huawei Cloud MaaS platform models with long-term AK/SK
python scripts/caller.py maas \
  --resource-id 0e1234567890abcdef \
  --region-id cn-north-4 \
  --model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2","qwen3-235b-a22b"]}' \
  --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive

# Example 2: Install Huawei Cloud MaaS platform models with temporary AK/SK
python scripts/caller.py maas \
  --resource-id 0e1234567890abcdef \
  --region-id cn-north-4 \
  --model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2","qwen3-235b-a22b"]}' \
  --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive

# Example 3: Install custom OpenAI compatible models with long-term AK/SK
python scripts/caller.py maas \
  --resource-id 0e1234567890abcdef \
  --region-id cn-north-4 \
  --model-params '{"provider":"https://api.openai.com/v1","api_key":"your_openai_key","model_ids":["gpt-4"]}' \
  --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive

状态码说明:状态码“200”、“201”、“202”均表示模型安装成功。

3. channel - 在已安装 OpenClaw 的 L 实例上配置(安装)渠道 - 两种命令模式(需要先部署 OpenClaw 实例)

命令 1:交互模式

python scripts/caller.py channel

命令 2:非交互模式

# Using long-term AK/SK (no security-token needed)
python scripts/caller.py channel --resource-id <Instance Resource ID> --region-id cn-north-4 --channel-list '<JSON array>' --ak <AK> --sk <SK> --non-interactive

# Using temporary AK/SK (security-token required)
python scripts/caller.py channel --resource-id <Instance Resource ID> --region-id cn-north-4 --channel-list '<JSON array>' --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive

参数说明:

参数说明必需(非交互模式)默认值(交互模式)示例
--resource-idL 实例资源 ID(部署 OpenClaw 实例后返回的实例 ID)是提示输入--resource-id 0e1234567890abcdef
--region-id实例所在的区域 ID,与部署实例时选择的区域一致是提示输入--region-id cn-north-4
--channel-list渠道配置(JSON 数组格式)是提示输入'[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]'
--ak华为云访问密钥 AK(支持长期和临时密钥)是提示输入--ak AXXX...
--sk华为云访问密钥 SK(支持长期和临时密钥)是提示输入--sk SXXX...
--security-token临时凭证的安全令牌(可选,仅临时 AK/SK 需要)否提示输入--security-token XXXX...
--timeout脚本执行超时时间(秒)否600--timeout 900
--non-interactive启用非交互模式否false--non-interactive

channel JSON 对象字段说明:

字段说明必需
channel渠道类型:wecom(企业微信)、feishu(飞书)、dingtalk(钉钉)、qqbot(QQ)是
id机器人 ID/APP ID/客户端 ID是
secret机器人密钥/APP 密钥/客户端密钥是

命令示例:

# Example 1: Install multiple channels (WeCom + Feishu) using long-term AK/SK
python scripts/caller.py channel \
  --resource-id 0e1234567890abcdef \
  --region-id cn-north-4 \
  --channel-list '[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' \
  --ak <AK> --sk <SK> --non-interactive

# Example 2: Install multiple channels (WeCom + Feishu) using temporary AK/SK
python scripts/caller.py channel \
  --resource-id 0e1234567890abcdef \
  --region-id cn-north-4 \
  --channel-list '[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' \
  --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive

状态码说明:状态码“200”“201”“202”均表示渠道安装成功。

Web UI 访问

需要在华为云控制台中手动启用 Web UI 访问,操作步骤如下:

  1. 登录华为云 Flexus 应用服务器 L 实例控制台
  2. 在实例列表中找到您的 OpenClaw 实例
  3. 点击实例名称进入详情页面
  4. 在详情页面的左侧菜单中找到并点击“应用详情”选项,然后进入“基本配置”标签页
  5. 在“基本配置”标签页中,找到左上方的“访问 OpenClaw Web 界面”选项,点击“启用”按钮。随后即可获取访问 OpenClaw Web 界面的 URL 地址。

代码结构、文件职责和关键函数

此技能采用模块化架构,便于维护:

scripts/
├── caller.py          # Main entry - command line argument parsing, parameter parsing, command routing
├── lib.py             # Core library - L instance creation, COC script management
├── utils.py           # Utility functions - input prompts, credential configuration, region information
├── deploy.py          # Deployment module - `do_deploy_openclaw()` function for OpenClaw instance creation
├── models.py          # Model module - remote COC large model installation (with prerequisite checks), related functions `do_install_maas()`, `_check_prerequisites()`
├── channels.py        # Channel module - remote COC channel installation (with prerequisite checks), related functions `do_install_channel()`, `_check_prerequisites()`
├── gateway.py         # Gateway module - gateway status query (only for prerequisite checks), related functions `do_check_gateway()`
└── uniagent.py        # UniAgent module - UniAgent status query (only for prerequisite checks), `do_check_uniagent()`

参考文档

  • IAM 权限策略:创建 Flexus L 实例和执行 COC 操作所需的华为云 IAM 权限
  • 验证方法:部署、模型和渠道安装的分阶段验证步骤及故障排除

参数确认

部署参数
  • --name:OpenClaw 实例名称,可选参数,默认值为 openclaw-{timestamp}
  • --region:目标区域 ID,可选参数,默认值为 cn-north-4
  • --ak:华为云临时访问密钥 AK,必需参数
  • --sk:华为云临时访问密钥 SK,必需参数
  • --security-token:临时凭证的安全令牌(必需),必需参数
  • --non-interactive:启用非交互模式,可选参数
模型配置参数
  • --resource-id:L 实例资源 ID(部署 OpenClaw 实例后返回的实例 ID),必填参数
  • --region-id:L 实例所在的区域 ID,需与部署实例时选择的区域一致,必填参数
  • --model-params:模型配置参数(JSON 格式),必填参数
    • provider:模型提供商名称(例如,“huawei”)或 API 地址(例如,“https://api.openai.com/v1”)
    • api_key:模型 API 密钥
    • model_ids:要安装的模型 ID 数组(不能为空)
  • --ak:华为云临时 Access Key AK,必填参数
  • --sk:华为云临时 Access Key SK,必填参数
  • --security-token:临时凭证的安全令牌(必填),必填参数
  • --timeout:脚本执行超时时间(秒),可选参数,默认 600 秒
渠道配置参数
  • --resource-id:L 实例资源 ID(部署 OpenClaw 实例后返回的实例 ID),必填参数
  • --region-id:L 实例所在的区域 ID,需与部署实例时选择的区域一致,必填参数
  • --channel-list:渠道配置(JSON 数组格式),可选参数
    • channel:渠道类型:wecom(企业微信)、feishu(飞书)、dingtalk(钉钉)、qqbot(QQ),必填
    • id:机器人 ID,必填
    • secret:机器人密钥,必填
  • --ak:华为云临时 Access Key AK,必填参数
  • --sk:华为云临时 Access Key SK,必填参数
  • --security-token:临时凭证的安全令牌(必填),必填参数
  • --timeout:脚本执行超时时间(秒),可选参数,默认 600 秒
环境变量支持

所有参数也可以通过环境变量提供:

  • HW_ACCESS_KEY:华为云 AK(对应 --ak 参数)
  • HW_SECRET_KEY:华为云 SK(对应 --sk 参数)
  • HW_SECURITY_TOKEN:临时凭证安全令牌(对应 --security-token 参数)
  • HW_PROJECT_ID:华为云 Project ID(可选)

常见问题快速解决方案

问题解决方案
实例创建失败检查 AK/SK 权限,确保拥有创建 Flexus L 实例的权限
模型安装失败检查 UniAgent 状态是否为 ONLINE、API Key 是否正确,以及 model-params 参数是否严格使用 JSON 格式
渠道安装失败检查机器人参数是否正确、是否已在平台创建机器人,以及 channel-list 参数是否严格使用 JSON 数组格式

评论

支持 Markdown