mcpField
H
huawei-cloud-ecs-sqlbot-deploy

huawei-cloud-ecs-sqlbot-deploy

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

关于 huawei-cloud-ecs-sqlbot-deploy

该技能通过华为云 X 实例部署 SQLBot,面向需要在云端搭建智能查询应用的用户。流程涵盖凭据验证、实例配置确认、安全组设置及通过 COC 执行部署。

主要功能

  1. 01验证华为云凭据
  2. 02创建 Ubuntu 22.04 实例
  3. 03配置安全组与 EIP
  4. 04通过 COC 部署 SQLBot
  5. 05部署前要求用户确认配置

适用场景

  1. 01在华为云新建服务器并部署 SQLBot
  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

详细介绍

🚀 购买华为云 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”,必须再次获得确认。


执行前检查清单

创建任何资源之前,请确认以下所有事项:

#检查项状态
1凭据可用(环境变量或用户提供)☐ 完成
2凭据验证成功☐ 完成
3用户已提供区域☐ 完成
4用户已确认配置(default/custom)☐ 必须
5用户明确表示选择“default”或“custom”☐ 必须

⛔ 如果第 4 项和第 5 项未勾选,请停止并向用户确认。


概述

此技能用于购买华为云 X 实例服务器,并部署 SQLBot 智能查询应用。

服务器规格:x86 架构、Ubuntu 22.04 服务器 64 位,默认配置为 4 核 8GB 内存(x1.4u.8g)

主要功能:

  1. AK/SK 身份验证(支持临时凭据)
  2. 创建 X 实例 + Ubuntu 22.04
  3. 自动配置安全组(端口 8000 仅允许内网访问)
  4. 通过 COC 云运维中心部署
  5. 一键完成:创建服务器 → 配置安全组 → 部署 SQLBot

前提条件

账户要求:拥有有效的华为云账户且余额充足,并具备创建 X 实例、安全组、绑定 EIP 和访问 COC 的权限

凭据要求:

凭据类型必需参数安全性说明
临时(推荐)AK + SK + Security Token高自动过期,更安全
永久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 存在(无 Token)继续步骤 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. ⛔ 必须进行第二次确认 ⛔——显示更新后的配置并再次请求用户确认(参见“参数确认”部分)
  4. 等待用户回复“confirm”或“modify”
  5. 只有在第二次确认后,才能继续执行步骤 5

**如果用户回复“default”:**继续执行步骤 5。


━━━ 步骤 5:创建服务 ━━━

只有在用户确认配置后,才能执行此步骤。

通知用户:“⏳ 正在创建服务……”

  1. 创建安全组 sg-sqlbot-YYYYMMDDHHMM
  2. 使用已确认的配置创建 X 实例
  3. 绑定 EIP
  4. 等待服务就绪

通知用户:“✅ 服务已创建!”


━━━ 步骤 6:部署 SQLBot ━━━

通知用户:“⏳ 正在通过 COC 部署 SQLBot……”

  1. 在云运维中心(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. 登录华为云 API Explorer:https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/debug?api=CreateTemporaryAccessKeyByToken&version=v3
  2. 点击“仅显示必填字段”→ 在请求体中填写“Token”
  3. 点击“调试”以获取凭证
  4. 复制 AK、SK 和 Security Token

⚠️ 注意:临时凭证有有效期(默认 15 分钟至 1 小时),请及时使用。


方法 2:永久凭证

优点:

  • ✅ 长期有效,无需频繁刷新
  • ✅ 适用于自动化脚本和 CI/CD

步骤:

  1. 登录华为云控制台:https://console.huaweicloud.com/
  2. 点击头像(右上角)→ 我的凭证
  3. 在左侧菜单中选择“访问密钥”
  4. 点击“创建访问密钥”
  5. 下载 CSV 文件(包含 AK 和 SK)

⚠️ 注意:永久凭证永不过期,请妥善保管!不要将 CSV 文件上传到代码仓库。


凭证类型对比
类型参数安全性有效期使用场景
临时AK + SK + Security Token高自动过期临时部署、一次性任务
永久AK + SK中永不过期自动化脚本、CI/CD

安全建议:部署任务优先使用临时凭证。


默认配置

项目默认值
服务名称x-SQLBot-YYYYMMDDHHMM
规格x1.4u.8g (4U8G, x86_64)
镜像Ubuntu 22.04 Server 64-bit
系统盘80GB 高 IO
计费模式按需计费
安全组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. 再次确认(如需):如果用户选择 "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?
自定义配置的二次确认

如果用户选择 "custom",请显示更新后的配置并请求二次确认:

📋 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:访问密钥(也可通过 HW_ACCESS_KEY 环境变量设置)
  • --sk:秘密密钥(也可通过 HW_SECRET_KEY 环境变量设置)
  • --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”?
跳过确认步骤此步骤为必须项,不可跳过
显示配置后直接继续等待用户回复后再继续

参考资料

评论

支持 Markdown