mcpField
H
huawei-cloud-ecs-sqlbot-deploy

huawei-cloud-ecs-sqlbot-deploy

github.com/huaweicloudクラウド・DevOps59143 回インストール2 日前に更新
リポジトリ

huawei-cloud-ecs-sqlbot-deploy について

Huawei Cloud X インスタンスに SQLBot をデプロイするスキルです。クラウド上でクエリアプリケーションを構築するユーザー向けに、認証情報の検証、構成確認、セキュリティグループ設定、COC 経由のデプロイを行います。

主な機能

  1. 01Huawei Cloud 認証情報の検証
  2. 02Ubuntu 22.04 インスタンスの作成
  3. 03セキュリティグループと EIP の設定
  4. 04COC 経由の SQLBot デプロイ
  5. 05リソース作成前の構成確認

活用シーン

  1. 01SQLBot 用の Huawei Cloud サーバー構築
  2. 02リソース作成前の認証情報検証と構成確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-ecs-sqlbot-deploy

インストール後、Claude Code で/huawei-cloud-ecs-sqlbot-deployを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acceptance-criteria.md
cli-installation-guide.md
iam-policies.md
verification-method.md
scripts/
coc_deploy.py
config.py
deploy_sqlbot.py
huawei_cloud_ecs.py
pyproject.toml
query_regions.py
utils.py

詳細

🚀 Huawei Cloud X インスタンスサーバーを購入して SQLBot をデプロイする


⛔⛔⛔ 重要:必須の実行順序 ⛔⛔⛔

以下の手順を必ず正確な順序で実行してください。手順を省略することはできません。

┌─────────────────────────────────────────────────────────────────┐
│  STEP 1: Auto-check environment variables for credentials       │
│          ↓                                                       │
│  STEP 2: Get Region (if env credentials found) OR               │
│          Get Credentials (AK/SK/Region) from user               │
│          ↓                                                       │
│  STEP 3: Validate credentials + Show available flavors          │
│          ↓                                                       │
│  STEP 4: ⛔ SHOW CONFIG + GET USER CONFIRMATION ⛔              │
│          ⛔ WAIT FOR USER TO REPLY "default" OR "custom" ⛔     │
│          ⛔ IF "custom": SECOND CONFIRMATION REQUIRED ⛔        │
│          ⛔ DO NOT PROCEED UNTIL USER CONFIRMS ⛔               │
│          ↓                                                       │
│  STEP 5: Create server (ONLY AFTER user confirmation)           │
│          ↓                                                       │
│  STEP 6: Deploy SQLBot                                          │
│          ↓                                                       │
│  STEP 7: Return results                                         │
└─────────────────────────────────────────────────────────────────┘

⚠️ ステップ 4(ユーザー確認)を省略すると、このタスクは失敗です。 ⚠️ ユーザーが「custom」を選択した場合、必ず 2 回目の確認を取ってください。


実行前チェックリスト

リソースを作成する前に、以下のすべてを確認してください。

#確認項目状態
1認証情報が利用可能(環境変数またはユーザーから提供)☐ 完了
2認証情報の検証に成功☐ 完了
3ユーザーからリージョンが提供された☐ 完了
4ユーザーが構成を確認した(default/custom)☐ 必須
5ユーザーが明示的に「default」または「custom」と指定した☐ 必須

⛔ 項目 4 と 5 にチェックが入っていない場合は、停止してユーザーに確認を求めてください。


概要

このスキルは、Huawei Cloud X インスタンスサーバーを購入し、SQLBot インテリジェントクエリアプリケーションをデプロイします。

サーバー仕様:x86 アーキテクチャ、Ubuntu 22.04 サーバー 64 ビット、デフォルトで 4 コア、8GB RAM(x1.4u.8g)

主な機能:

  1. AK/SK 認証(一時的な認証情報に対応)
  2. X インスタンス + Ubuntu 22.04 の作成
  3. セキュリティグループの自動構成(ポート 8000 は内部ネットワークからのアクセスのみ許可)
  4. COC Cloud Operations Center によるデプロイ
  5. ワンクリックで完了:サーバーの作成 → セキュリティグループの構成 → SQLBot のデプロイ

前提条件

アカウント要件:有効な Huawei Cloud アカウント、十分な残高、X インスタンスの作成、セキュリティグループの作成、EIP のバインド、および COC へのアクセスに必要な権限

認証情報の要件:

認証情報の種類必須パラメーターセキュリティ説明
一時(推奨)AK + SK + セキュリティトークン高自動的に有効期限が切れるため、より安全です
永続AK + SK中有効期限はありません。安全に保管してください

ステップごとの実行ガイド

━━━ ステップ 1:認証情報の自動確認(環境変数) ━━━

ユーザーがこのスキルを実行したら、ユーザーに尋ねる前に、まず環境変数から認証情報を自動的に取得してください。

# Check credentials (prefer temporary credentials)
export HW_ACCESS_KEY
export HW_SECRET_KEY  
export HW_SECURITY_TOKEN

判定ロジック:

認証情報の状態次のステップ
✅ HW_ACCESS_KEY + HW_SECRET_KEY + HW_SECURITY_TOKEN が存在するステップ 2 に進む(リージョンのみを尋ね、一時的な AK/SK 認証を使用)
✅ HW_ACCESS_KEY + HW_SECRET_KEY が存在する(トークンなし)ステップ 2 に進む(リージョンのみを尋ね、永続的な AK/SK 認証を使用)
❌ 環境変数が見つからないユーザーに認証情報の構成を促す(環境変数を推奨)。ステップ 2 に進む
❌ 認証に失敗ユーザーに認証情報の確認または再構成を促す。ステップ 2 に進む

⚠️ セキュリティに関する推奨事項:

  1. 一時的な認証情報を推奨:より高いセキュリティレベルで、認証情報は自動的に有効期限が切れます
  2. 環境変数による構成:認証情報は環境変数(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)で構成してください
  3. 機密情報の保護:AK/SK は機密情報です。会話に入力したり、漏えいさせたりしないでください

━━━ ステップ 2:リージョンまたは認証情報の取得 ━━━

ケース A:環境変数の認証情報が検出された場合

OK! I will help you deploy SQLBot on Huawei Cloud X instance.

📋 Process Overview:
1. ✅ Environment credentials detected → User only needs to provide region
2. ⛔ Confirm configuration with you ⛔
3. Create server
4. Deploy SQLBot

⏱️ Estimated time: 10-15 minutes

Please provide:
- **Region**: Optional, default cn-north-4 (Beijing 4)
  ⚠️ If not provided, will use default region: cn-north-4

ケース B:環境変数の認証情報が検出されなかった場合

❌ Environment credentials not detected

Please configure Huawei Cloud credentials (see "How to Get AK/SK" section).

📋 Process Overview:
1. ❌ Environment credentials not detected → User needs to provide credentials + region
2. ⛔ Confirm configuration with you ⛔
3. Create server
4. Deploy SQLBot

⏱️ Estimated time: 10-15 minutes

Please provide:
- **Access Key (AK)**: Required
- **Secret Key (SK)**: Required
- **Security Token**: Required for temporary credentials, not needed for permanent
- **Region**: Optional, default cn-north-4 (Beijing 4)

**注記:**認証情報は環境変数から取得することを優先し、AK/SK を直接入力するようユーザーに求めることはありません。ただし、ユーザーが別の方法(会話への入力、構成ファイルなど)で認証情報を自発的に提供した場合は、解析に対応します。

リージョンの表と AK/SK の手順(以下を参照)を含めてください。

その後、ユーザーからの情報提供を待ってください。


━━━ ステップ 3:認証情報の検証 ━━━

リージョン/認証情報を受け取った後:

  1. 認証情報を検証します
  2. 構成をユーザーに表示します

以下の注記を表示してください:

💡 Note: Server flavor availability varies by region.
🔗 For details, see: https://www.huaweicloud.com/pricing/calculator.html#/hecs

検証に成功したら、ステップ 4:ユーザー確認に進んでください。


━━━ ステップ 4:ユーザーによる確認(⛔ 必須) ━━━

⛔ このステップは必須です。省略できません。⛔

設定を表示して、確認を求めてください(「パラメーターの確認」セクションを参照):

⚠️ 注意:サーバー名を表示し、使用されるサーバー名をユーザーが把握できるようにしてください。

⛔ 停止して、ユーザーが「default」または「custom」と返信するまで待ってください。

⛔ ユーザーの確認が完了するまで、ステップ 5 に進まないでください。

⛔ ユーザーの確認前に、リソースを作成しないでください。

ユーザーが「custom」と答えた場合:

  1. カスタマイズしたい項目を尋ねます
  2. ユーザーの入力に基づいて設定を更新します
  3. ⛔ 2 回目の確認が必要です ⛔ - 更新した設定を表示し、ユーザーに再度確認を求めます(「パラメーターの確認」セクションを参照)
  4. ユーザーが「confirm」または「modify」と返信するまで待ちます
  5. 2 回目の確認が完了してから、ステップ 5 に進みます

ユーザーが「default」と答えた場合: ステップ 5 に進みます。


━━━ ステップ 5:サーバーの作成 ━━━

このステップは、ユーザーが設定を確認した後にのみ実行してください。

ユーザーに通知します:「⏳ サーバーを作成しています...」

  1. セキュリティグループ sg-sqlbot-YYYYMMDDHHMM を作成します
  2. 確認済みの設定で X インスタンスを作成します
  3. EIP をバインドします
  4. サーバーの準備が整うまで待ちます

ユーザーに通知します:「✅ サーバーを作成しました!」


━━━ ステップ 6:SQLBot のデプロイ ━━━

ユーザーに通知します:「⏳ COC 経由で SQLBot をデプロイしています...」

  1. Cloud Operations Center(COC)でインストールスクリプトを作成します
  2. COC 経由で対象インスタンス上でスクリプトを実行します
  3. デプロイが完了するまで待ち、結果を確認します

ユーザーに通知します:「✅ COC 経由で SQLBot をデプロイしました!」


━━━ ステップ 7:結果の返却 ━━━

以下のすべてを必ず提示してください:

🎉 SQLBot Deployment Complete!

📋 Server Information:
- Name: x-SQLBot-YYYYMMDDHHMM
- Public IP: X.X.X.X
- Private IP: 192.168.X.X

🔐 Access Information:
- Server Password: Test@123456 ⚠️ Change immediately!
- SQLBot URL: http://X.X.X.X:8000 (Note: Please allow your accessing machine IP to access port 8000 in the security group before accessing)
- SQLBot Username: admin
- SQLBot Password: SQLBot@123456

🔗 Huawei Cloud Console: https://console.huaweicloud.com/console/?region={region}#/ecs/manager/vmList

⚠️ Security Reminders:
1. Change server password immediately after login
2. Change SQLBot admin password after login
3. Release server when done to save costs

対応リージョン(19 リージョン)

リージョン名リージョンコード
中国北部 - 北京 4cn-north-4
中国東部 - 上海 1cn-east-3
中国南部 - 広州cn-south-1
中国西南部 - 貴陽 1cn-southwest-2
中国東部 2cn-east-4
中国東部 - 青島cn-east-5
中国北部 - ウランチャブ 1cn-north-9
中国 - 香港ap-southeast-1
アジア太平洋 - バンコクap-southeast-2
アジア太平洋 - シンガポールap-southeast-3
アジア太平洋 - ジャカルタap-southeast-4
アジア太平洋 - マニラap-southeast-5
アフリカ - カイロaf-north-1
アフリカ - ヨハネスブルグaf-south-1
ラテンアメリカ - メキシコシティ 2la-north-2
ラテンアメリカ - サンティアゴla-south-2
ラテンアメリカ - サンパウロ 1sa-brazil-1
中東 - リヤドme-east-1
トルコ - イスタンブールtr-west-1

AK/SK の取得方法

方法 1:一時認証情報(推奨 🔒)

メリット:

  • ✅ 自動的に有効期限が切れるため、セキュリティが高まります
  • ✅ 一時的なデプロイ作業に適しています
  • ✅ 漏えいした場合でも影響を限定できます

手順:

  1. Huawei Cloud API Explorer にログインします:https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/debug?api=CreateTemporaryAccessKeyByToken&version=v3
  2. 「必須フィールドのみ表示」をクリックし、本文の「Token」に値を入力します
  3. 「デバッグ」をクリックして認証情報を取得します
  4. AK、SK、セキュリティトークンをコピーします

⚠️ 注意:一時認証情報には有効期限があります(デフォルトでは 15 分から 1 時間)。速やかに使用してください。


方法 2:永続認証情報

メリット:

  • ✅ 長期間有効で、頻繁に更新する必要がありません
  • ✅ 自動化スクリプトや CI/CD に適しています

手順:

  1. Huawei Cloud コンソールにログインします:https://console.huaweicloud.com/
  2. アバター(右上)をクリックし、「マイ認証情報」を選択します
  3. 左側のメニューから「アクセスキー」を選択します
  4. 「アクセスキーを作成」をクリックします
  5. CSV ファイルをダウンロードします(AK と SK が含まれています)

⚠️ 注意:永続認証情報には有効期限がありません。安全に保管してください。CSV ファイルをコードリポジトリにアップロードしないでください。


認証情報の種類の比較
種類パラメーターセキュリティ有効期間用途
一時AK + SK + セキュリティトークン高自動的に期限切れ一時的なデプロイ、単発の作業
永続AK + SK中無期限自動化スクリプト、CI/CD

セキュリティに関する推奨事項:デプロイ作業では、一時認証情報を優先して使用してください。


デフォルト設定

項目デフォルト値
サーバー名x-SQLBot-YYYYMMDDHHMM
フレーバーx1.4u.8g (4U8G, x86_64)
イメージUbuntu 22.04 Server 64-bit
システムディスク80GB 高 I/O
課金モードオンデマンド
セキュリティグループsg-sqlbot-YYYYMMDDHHMM (新規作成)
EIP 帯域幅300M
EIP 課金トラフィック量に応じて課金
サーバーパスワードTest@123456
SQLBot ユーザー名admin
SQLBot パスワードSQLBot@123456
開放ポート8000 (内部ネットワークのみ)

料金の目安

デフォルト設定 (4U8G、オンデマンド):

  • サーバー:約0.47 CNY/時間
  • トラフィック:約0.8 CNY/GB

料金計算ツール: https://www.huaweicloud.com/pricing/calculator.html#/hecs


主なコマンド

コマンド/オプション機能説明
(no option)デプロイX インスタンスを購入し、SQLBot インテリジェントクエリアプリケーションをデプロイします
--list-regions / -l利用可能なリージョンを表示対応するすべてのリージョンと X インスタンスの種類を表示します
--test接続をテストAK/SK 認証情報を検証します

一般的なパラメーター: --ak、--sk、--region、--flavor、--charging-mode

デフォルト値:「デフォルト設定」セクションを参照してください。


パラメーターの確認

⛔ 必須:デプロイ前にユーザーの確認が必要です。確認なしにリソースを作成することはできません。

確認フロー
  1. 設定を表示:サーバー名、リージョン、フレーバー、イメージ、システムディスク、課金モード、EIP などを一覧表示します。
  2. ユーザーの応答を待機:ユーザーは "default"(デフォルト設定を使用)または "custom"(設定をカスタマイズ)と明示的に返信する必要があります。
  3. 2 回目の確認(必要な場合):ユーザーが "custom" を選択した場合、更新後の設定を表示し、再度確認を求めます。
確認するパラメーター

カスタマイズ可能なパラメーター:サーバー名、リージョン、フレーバー、イメージ、システムディスク、課金モード、EIP 帯域幅(デフォルト値は「デフォルト設定」セクションを参照してください)

確認テンプレート
📋 Server Configuration:

| Item | Value |
|------|-------|
| Server Name | x-SQLBot-YYYYMMDDHHMM (auto-generated) |
| Region | {user-provided region} |
| Flavor | x1.4u.8g (4 cores 8GB) |
| Image | Ubuntu 22.04 Server 64-bit |
| System Disk | 80GB |
| Billing Mode | On-demand (pay-as-you-go) |
| EIP | 300M bandwidth, pay-by-traffic |

💰 Price Calculator: https://www.huaweicloud.com/pricing/calculator.html#/hecs

⛔ Please confirm: Use "default" configuration or "custom" configuration?
カスタム設定の 2 回目の確認

ユーザーが "custom" を選択した場合、更新後の設定を表示し、2 回目の確認を求めます。

📋 Updated Server Configuration:

| Item | Value |
|------|-------|
| Server Name | {custom name} |
| Region | {custom region} |
| Flavor | {custom flavor} |
| Image | {custom image} |
| System Disk | {custom size}GB |
| Billing Mode | {custom mode} |
| EIP | {custom bandwidth}M bandwidth, pay-by-traffic |

⛔ Please confirm: Is the above configuration correct? Reply "confirm" to proceed or "modify" to change.

スクリプトの使用方法

オプション 1:コマンドラインパラメーターを使用する
python3 scripts/deploy_sqlbot.py \
  --ak YOUR_AK \
  --sk YOUR_SK \
  --security-token YOUR_SECURITY_TOKEN \
  --region cn-north-4 \
  --notify-user-id <feishu_user_id>
オプション 2:環境変数を使用する(一時的な認証情報に推奨)
export HW_ACCESS_KEY="your-temp-ak"
export HW_SECRET_KEY="your-temp-sk"
export HW_SECURITY_TOKEN="your-security-token"

python3 scripts/deploy_sqlbot.py --region cn-north-4  --notify-user-id <feishu_user_id>

パラメーター:

  • --ak:Access Key(HW_ACCESS_KEY 環境変数でも設定できます)
  • --sk:Secret Key(HW_SECRET_KEY 環境変数でも設定できます)
  • --security-token:一時的な認証情報用の Security Token(HW_SECURITY_TOKEN 環境変数でも設定できます)
  • --region:リージョンコード(デフォルト:cn-north-4、北京 4)
  • --flavor:サーバーフレーバー(デフォルト:x1.4u.8g)
  • --volume-size:システムディスクのサイズ(デフォルト:80GB)
  • --bandwidth:EIP 帯域幅(デフォルト:300M)
  • --charging-mode:postPaid(オンデマンド)または prePaid(月額)

⚠️ 避けるべきよくある間違い

間違い正しい対応
ユーザーの確認なしにサーバーを作成する必ず最初に確認を得てください
ユーザーがデフォルト設定を希望していると決めつける「default」か「custom」かを明示的に確認してください
確認手順を省略するこの手順は必須であり、省略できません
設定を表示した後、そのまま進める進める前にユーザーの返信を待ってください

参考資料

コメント