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 をデプロイ、管理する運用者や開発者向けのスキルです。インスタンスを作成し、COC 経由でモデルやメッセージチャネルを導入できます。

主な機能

  1. 01Flexus L インスタンスの作成と OpenClaw のデプロイ
  2. 02COC 経由のモデル設定
  3. 03WeCom、Feishu、DingTalk、QQ チャネルの導入
  4. 04インストール前の Gateway と UniAgent の状態確認
  5. 05対話型と非対話型の操作

活用シーン

  1. 01Flexus L インスタンスへの OpenClaw デプロイ
  2. 02OpenClaw のモデル導入や切り替え
  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 経由で実行してください。シェルから直接実行してはいけません
  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

概要

このスキルは、Huawei Cloud Flexus L Instance への OpenClaw AI Agent プラットフォームのワンクリックデプロイをサポートします。初期デプロイからデプロイ後の設定まで、OpenClaw インスタンスの管理ワークフローを一通り提供します。内容は次のとおりです。

  • インスタンスの自動作成
  • COC(Cloud Operations Center)経由でのモデルのインストール
  • COC 経由でのチャネルのインストール(WeCom、Feishu、DingTalk、QQ)
  • インストール前の前提条件の自動確認(Gateway と UniAgent の状態)
ユースケース
シナリオ説明
エンタープライズ AI アシスタントのセットアップ企業内の Q&A、カスタマーサービスなどに利用する AI エージェントプラットフォームを、企業が迅速にデプロイする必要がある場合
マルチチャネルボットの統合複数のメッセージングチャネル(WeCom、Feishu、DingTalk)を統合 AI アシスタントに連携する必要がある場合
LLM の迅速な統合既存の OpenClaw インスタンスで、異なる LLM(DeepSeek、Qwen など)に迅速に切り替えたり、追加したりする必要がある場合
運用デプロイの自動化スクリプトを使用して、複数のリージョンに OpenClaw インスタンスを自動で一括デプロイする必要がある場合
代表的なユースケース

ユーザーは次のように依頼する場合があります。

  1. 「Flexus L instance に OpenClaw をインストールしたい」
  2. 「デプロイ済みの OpenClaw に DeepSeek モデルを設定したい」
  3. 「Feishu チャネルを設定して OpenClaw をデプロイしてください」

前提条件

アカウント要件
  • 次の権限を持つ Huawei Cloud AK/SK 認証情報:
    • Flexus L Instance の作成
    • COC(Cloud Operations Center)サービスへのアクセス

認証情報の取得方法:

このスキルでは、次の方法で Huawei Cloud の認証情報を取得できます(優先度の高い順)。

認証情報の種類:

  • 長期 AK/SK:有効期限のない認証情報です。security_token は不要です
  • 一時 AK/SK:有効期間が限られた認証情報です。security_token が必要です
  1. 環境変数(デフォルト)(最優先)

    • HW_ACCESS_KEY:Huawei Cloud のアクセスキー AK
    • HW_SECRET_KEY:Huawei Cloud のアクセスキー SK
    • HW_SECURITY_TOKEN:セキュリティトークン(任意。一時認証情報の場合のみ必要)
  2. ユーザー指定の設定ファイルまたはその他の環境変数(デフォルトの環境変数が利用できない場合に使用)

    • 対話中にユーザーが指定する設定ファイルのパスまたはその他の環境変数
  3. 対話形式での入力(上記の方法がいずれも指定されていない場合)

    • プログラムからユーザーに AK/SK などの認証情報の入力を求めます

重要な注意事項:

  • 長期 AK/SK:有効期限のない認証情報です。security_token は不要です
  • 一時 AK/SK:有効期間が限られており、IAM インターフェースから取得します。security_token の指定が必要です
アーキテクチャ図

このスキルは複数の Huawei Cloud サービスを基盤としており、以下のクラウドサービスとコンポーネントが関わります。

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)            

コンポーネントの説明:

  • User/Agent:自然言語または API を通じて OpenClaw のデプロイ操作を実行するスキルの呼び出し元です
  • Flexus L Instance:Huawei Cloud のエラスティッククラウドサーバーで、OpenClaw のデプロイ先ホストとして機能します
  • OpenClaw App:Flexus L インスタンス上で動作する AI エージェントコラボレーションプラットフォームです
  • Model Config:外部 LLM サービスの設定です(API_BASE、API_KEY、MODEL_IDS、PROVIDER)
  • Channel Config:メッセージングチャネルの設定です(WeCom、Feishu、DingTalk、QQ)

このスキルの使い方

コマンドの実行と手順
1. OpenClaw インスタンスをデプロイする(Huawei Cloud Flexus L インスタンスを作成し、OpenClaw AI エージェントプラットフォームをデプロイする)- 2 つのコマンドモード:

コマンド 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
--akHuawei Cloud アクセスキー AK(長期および一時の両方に対応)はいプロンプトで確認--ak AXXX...
--skHuawei Cloud アクセスキー SK(長期および一時の両方に対応)はいプロンプトで確認--sk SXXX...
--security-token一時的な認証情報のセキュリティトークン(任意。一時的な AK/SK の場合のみ必要)いいえプロンプトで確認--security-token XXXX...
--non-interactive非対話モードを有効にするいいえfalse--non-interactive

注:2026 年 6 月より前は、OpenClaw のデプロイは以下のリージョンのみ対応しています(他のリージョンにデプロイする前に、公式サイトで最新の対応リージョンを確認するようユーザーに案内できます):China North-Beijing-4 (cn-north-4)、China East-Shanghai-1 (cn-east-3)、China South-Guangzhou (cn-south-1)、China Southwest-Guiyang-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 インスタンスのデプロイ時における Huawei Cloud Flexus L インスタンスのデフォルト設定

設定項目デフォルト値説明
イメージOpenClaw 2026.1.30OpenClaw アプリケーションのイメージバージョン
プランの仕様hf.small.1.linux または ahf.small.1.linuxBeijing/Shanghai/Guangzhou では hf.small.1.linux、Guiyang では ahf.small.1.linux
課金モード月額サブスクリプションprePaid モード
EVS ディスク50GBシステムディスクのサイズ
CBR バックアップ50GBクラウドバックアップ容量
HSS ホストセキュリティ有効ホストセキュリティサービス

実行結果とステータスコードの説明:

  • 成功すると、注文 ID とインスタンス ID(リソース ID。後続のモデルおよびチャネルのインストールに使用)が返されます
  • インスタンスの作成には約 2 分かかります。進行状況は Huawei Cloud コンソールで確認できます。インスタンスの作成中も、モデルとチャネルのインストールには影響しないため、後続のコマンドをそのまま実行できます。 ステータスコードの説明:「200」、「201」、「202」はすべてインスタンスの作成が成功したことを示します。

2. OpenClaw をインストールした L インスタンスに大規模モデルのパラメーターを設定(インストール)する — 2 つのコマンドモード(事前に 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"]}'
--akHuawei Cloud のアクセスキー AK(長期キーと一時キーの両方に対応)はいプロンプトで入力--ak AXXX...
--skHuawei Cloud のアクセスキー 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 インスタンスでチャネルを設定(インストール)する - 2 つのコマンドモード(最初に 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"}]'
--akHuawei Cloud Access Key AK(長期および一時の両方に対応)はい入力を求められます--ak AXXX...
--skHuawei Cloud Access Key SK(長期および一時の両方に対応)はい入力を求められます--sk SXXX...
--security-token一時認証情報用のセキュリティトークン(任意。一時 AK/SK の場合のみ必要)いいえ入力を求められます--security-token XXXX...
--timeoutスクリプトの実行タイムアウト(秒)いいえ600--timeout 900
--non-interactive非対話モードを有効にしますいいえfalse--non-interactive

channel JSON オブジェクトのフィールドの説明:

フィールド説明必須
channelチャネルタイプ:wecom(WeCom)、feishu(Feishu)、dingtalk(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 にアクセスするには、Huawei Cloud コンソールで手動で有効にする必要があります。操作手順は次のとおりです。

  1. Huawei Cloud Flexus Application Server L Instance コンソールにログインします
  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 操作に必要な Huawei Cloud IAM 権限
  • 検証方法:デプロイ、モデル、チャネルのインストールに関する段階的な検証手順とトラブルシューティング

パラメーターの確認

デプロイパラメーター
  • --name:OpenClaw インスタンス名。任意のパラメーターで、デフォルトは openclaw-{timestamp} です
  • --region:対象リージョン ID。任意のパラメーターで、デフォルトは cn-north-4 です
  • --ak:Huawei Cloud 一時 Access Key AK。必須パラメーターです
  • --sk:Huawei Cloud 一時 Access Key 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:Huawei Cloud の一時 Access Key AK。必須パラメータ
  • --sk:Huawei Cloud の一時 Access Key SK。必須パラメータ
  • --security-token:一時認証情報のセキュリティトークン(必須)。必須パラメータ
  • --timeout:スクリプトの実行タイムアウト(秒)。任意パラメータ。デフォルトは 600 秒です
チャネル設定パラメータ
  • --resource-id:L インスタンスのリソース ID(OpenClaw インスタンスのデプロイ後に返されるインスタンス ID)。必須パラメータ
  • --region-id:L インスタンスが配置されているリージョン ID。インスタンスのデプロイ時に選択したリージョンと一致する必要があります。必須パラメータ
  • --channel-list:チャネル設定(JSON 配列形式)。任意パラメータ
    • channel:チャネルの種類:wecom(WeCom)、feishu(Feishu)、dingtalk(DingTalk)、qqbot(QQ)。必須
    • id:ボット ID。必須
    • secret:ボットのシークレット。必須
  • --ak:Huawei Cloud の一時 Access Key AK。必須パラメータ
  • --sk:Huawei Cloud の一時 Access Key SK。必須パラメータ
  • --security-token:一時認証情報のセキュリティトークン(必須)。必須パラメータ
  • --timeout:スクリプトの実行タイムアウト(秒)。任意パラメータ。デフォルトは 600 秒です
環境変数のサポート

すべてのパラメータは、環境変数でも指定できます:

  • HW_ACCESS_KEY:Huawei Cloud の AK(--ak パラメータに対応)
  • HW_SECRET_KEY:Huawei Cloud の SK(--sk パラメータに対応)
  • HW_SECURITY_TOKEN:一時認証情報のセキュリティトークン(--security-token パラメータに対応)
  • HW_PROJECT_ID:Huawei Cloud の Project ID(任意)

よくある問題のクイック解決策

問題解決策
インスタンスの作成に失敗するAK/SK の権限を確認し、Flexus L インスタンスを作成する権限があることを確認してください
モデルのインストールに失敗するUniAgent のステータスが ONLINE か、API Key が正しいか、model-params パラメータが厳密に JSON 形式に従っているかを確認してください
チャネルのインストールに失敗するボットのパラメータが正しいか、プラットフォーム上でボットが作成されているか、channel-list パラメータが厳密に JSON 配列形式に従っているかを確認してください

コメント