huawei-cloud-flexus-l-server-ops について
Huawei Cloud Flexus L インスタンスを運用するスキルです。状態、設定、パスワード、トラフィックの管理を行うユーザー向けに、クエリやライフサイクル操作をまとめ、スクリプト実行と認証情報の保護手順を定めています。
主な機能
- 01インスタンス一覧と詳細の確認
- 02インスタンスの起動・停止・再起動
- 03インスタンスパスワードのリセット
- 04名前やメタデータの更新
- 05トラフィックパッケージ使用量の照会
活用シーン
- 01Flexus 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詳細
⚠️ セキュリティ上の実行ルール(最優先):
- すべてのスクリプトは、必ず skill action=exec を使用して実行してください。シェルから直接実行することは絶対に避けてください
- AK/SK/Token を含むスクリプトの内容やコマンドを会話内に出力することは絶対に避けてください
- 一時的なスクリプトファイルを作成することは絶対に避け、インライン実行(python -c)を優先してください
- 実行に失敗した場合は、エラー情報のみを返してください。スクリプトを書き換えたり、コマンド全体を出力したりしないでください
- AK/SK/Token は環境変数を介して渡してください。会話内に記載することは絶対に避けてください
- ⚠️ いかなる形式であっても、AK/SK/Token の値を公開、記録、出力することは絶対に避けてください。これは重要なセキュリティ要件です
Huawei Cloud Flexus L インスタンスの運用
概要
このスキルは、Huawei Cloud 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 Service:Elastic Cloud Server。インスタンス管理、ライフサイクル制御、パスワードのリセットなどを提供します
- BSS Service:Business Support System。トラフィックパッケージの使用状況照会を提供します
- Python SDK:Huawei Cloud の公式 SDK。API 呼び出しロジックをカプセル化します
- 操作スクリプト:6 つの独立したスクリプト。それぞれが 1 つの操作に対応します
対応するシナリオ
代表的な問題のシナリオ:
- インスタンスの状態確認:アカウント内のすべての Flexus L インスタンスの稼働状態をすばやく確認する必要がある場合
- 一括操作:複数のサーバーに対して、起動、停止、再起動を実行する必要がある場合
- 設定変更:インスタンス名、説明、ホスト名などの基本情報を変更する必要がある場合
- パスワード管理:インスタンスのログインパスワードをリセットする必要がある場合
- トラフィックの監視:トラフィックパッケージの残量と使用量を確認する必要がある場合
トリガーキーワード:
| 英語キーワード | 日本語キーワード |
|---|---|
| Flexus L | Flexus L |
| Huawei Cloud Ops | Huawei Cloud の運用 |
| Query Instance | インスタンスを照会 |
| Start/Stop/Reboot | 起動/停止/再起動 |
| Reset Password | パスワードをリセット |
| Update Info | 情報を変更 |
| Query Traffic | トラフィックを照会 |
| Traffic Package | トラフィックパッケージ |
| List All Servers | すべてのサーバーを一覧表示 |
| My Servers | 自分のサーバーは何ですか |
| List All Instances | すべてのインスタンスを一覧表示 |
前提条件
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. Huawei Cloud SDK のインストール
pip3 install huaweicloudsdkcore huaweicloudsdkecs huaweicloudsdkconfig huaweicloudsdkbss \
-i https://repo.huaweicloud.com/repository/pypi/simple
⚠️ 重要:スクリプトの使用ルール
操作ごとに、必ず対応するスクリプトを使用してください。他のスクリプトのコマンドは使用しないでください。
| 操作 | 使用必須のスクリプト | 正しいコマンド | ❌ 誤ったコマンド |
|---|---|---|---|
| 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 |
操作結果の報告要件
ライフサイクル操作(起動/停止/再起動)の後は必ず状態を照会し、最終状態をユーザーに報告してください。
報告形式の例:
✅ 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 + 1 つ以上の変更項目 |
| リージョン別トラフィックの照会 | target-region | 対象リージョンコード |
| ID によるトラフィックの照会 | traffic_ids | トラフィックパッケージ ID の一覧 |
オプションのパラメーター:
| パラメーター | 説明 | 必須 | デフォルト | 例 |
|---|---|---|---|---|
| --region | 対象リージョンコード(中国語の名称に対応) | いいえ | cn-north-4 | --region cn-north-4 |
| --ak | Huawei Cloud Access Key AK(一時 AK も使用可能) | いいえ | HW_ACCESS_KEY 環境変数 | --ak AXXX... |
| --sk | Huawei Cloud Access Key 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 が存在する(トークンなし) | スクリプトを直接実行します(永続 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"]
⚠️ エラー処理: 照会で「server not found」エラーが発生し、ユーザーがリージョンを指定していない場合は、リージョン、インスタンスタイプ、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 一括停止
⚠️ 危険な操作:2 回確認が必要です
🔒 インスタンスタイプの制限:この操作は Flexus L インスタンスのみをサポートし、すべての ECS インスタンスを対象とするものではありません。実行前にインスタンスタイプを必ず確認してください。
必須パラメーター:
- インスタンス ID(必須、複数指定可能)
- リージョンコード(任意、デフォルトは cn-north-4)
実行前に必ず 2 回確認してください:
- 停止による影響(サービスの中断、データ損失のリスク)をユーザーに伝えてください
- 現在 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 一括再起動
⚠️ 危険な操作:2 回確認が必要です
🔒 インスタンスタイプの制限:この操作は Flexus L インスタンスのみをサポートし、すべての ECS インスタンスを対象とするものではありません。実行前にインスタンスタイプを必ず確認してください。
必須パラメーター:
- インスタンス ID(必須、複数指定可能)
- リージョンコード(任意、デフォルトは cn-north-4)
- 再起動タイプ(任意):SOFT(通常の再起動、デフォルト)または HARD(強制再起動)
実行前に必ず 2 回確認してください:
- 再起動による影響(短時間のサービス中断、メモリ上のデータ損失)をユーザーに伝えてください
- 現在 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)
- 変更パラメーター(少なくとも 1 つ):
- 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(必須)
⚠️ 特記事項:トラフィックパッケージの照会では、デフォルトで北京 1 リージョン(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 | 華北・北京 4 |
| cn-north-1 | 華北・北京 1 |
| cn-south-1 | 華南・広州 |
| cn-east-3 | 華東・上海 1 |
| 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"]
トラフィックパッケージの照会に関する特記事項
⚠️ トラフィックパッケージの照会では、デフォルトで北京 1 リージョン(cn-north-1)が使用されます。
- トラフィックパッケージの照会では、--region パラメーターはサポートされません
- トラフィックパッケージ ID はどのリージョンのものでも指定できます
- 照会には北京 1 リージョンが自動的に使用されます
注意事項
- インスタンス ID は、Flexus L インスタンスに対応するクラウドホスト ID です
- リージョンのデフォルトは cn-north-4(北京 4)です
- AK/SK のセキュリティ要件:
- ✅ 環境変数(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)を使用して保存する必要があります
- ❌ 設定ファイルに保存しないでください
- 停止/再起動のセキュリティ要件:
- ✅ 必ず 2 回確認してください。ユーザーの確認なしに直接実行してはいけません
- ✅ Flexus L インスタンスのみが対象です。すべての ECS インスタンスを操作することはできません。インスタンスタイプを必ず確認してください
- ✅ 操作による影響をユーザーに伝えてください
- ✅ 現在使用中のサーバーの場合は、追加の警告を行ってください
- ❌ すべての ECS インスタンスに対する一括操作は絶対に実行しないでください。サポート対象は Flexus L インスタンスのみです
参考資料
スキルの参考ドキュメント
このスキルには、以下の参考ドキュメントが含まれています。