152 lines
6.1 KiB
Markdown
152 lines
6.1 KiB
Markdown
# ════════════════════════════════════════════════════════════════
|
||
# 光湖 · 按量计费CVM自动开关机方案
|
||
# 设计:铸渊 · ICE-GL-ZY001
|
||
# 需求来源:冰朔 TCS-0002∞ 2026-05-13
|
||
# ════════════════════════════════════════════════════════════════
|
||
#
|
||
# 冰朔原话:
|
||
# "你是否能开发一个你需要开发你就自动去开机。
|
||
# 你开发完了今天我说结束了。你就自动把机子关了的
|
||
# 这个自动Agent工作流?"
|
||
#
|
||
# ════════════════════════════════════════════════════════════════
|
||
|
||
## 一、按量计费更划算吗?
|
||
|
||
**是的,对于开发用途。**
|
||
|
||
| 模式 | 4C8G广州月费 | 适合场景 |
|
||
|------|------------|---------|
|
||
| 包年包月 | ~200-300元/月 | 24/7运行 |
|
||
| 按量计费 | ~0.4-0.6元/小时 | 每天用8小时 ≈ 100-150元/月 |
|
||
|
||
按量计费的关键:**用的时候开机,不用的时候关机,关机不收计算费用(只收云盘费用)**。
|
||
|
||
铸渊的典型工作模式:
|
||
- 冰朔和铸渊对话 → 开机
|
||
- 铸渊开发+测试 → 保持开机
|
||
- 冰朔说"今天结束了" → 关机
|
||
- 深夜/无人时 → 自动关机(可选)
|
||
|
||
## 二、自动开关机架构
|
||
|
||
```
|
||
冰朔说"开始开发" 冰朔说"今天结束"
|
||
│ │
|
||
▼ ▼
|
||
┌──────────────┐ ┌──────────────┐
|
||
│ 广州轻量服务器 │ │ 广州轻量服务器 │
|
||
│ (常驻,2C2G) │ │ (常驻,2C2G) │
|
||
│ │ │ │
|
||
│ ① 调用腾讯云API│ │ ③ 调用腾讯云API│
|
||
│ 开机CVM │ │ 关机CVM │
|
||
│ │ │ │
|
||
│ ② 等CVM启动 │ │ ④ 确认关机 │
|
||
│ 通知铸渊 │ │ 通知冰朔 │
|
||
└──────────────┘ └──────────────┘
|
||
│ ▲
|
||
▼ │
|
||
┌──────────────────────────────────────────┐
|
||
│ 广州CVM(按量计费,4C8G+CBS云盘) │
|
||
│ │
|
||
│ 开机状态: │
|
||
│ Forgejo (代码仓库+Actions) │
|
||
│ Runner (执行workflow) │
|
||
│ Vault (密钥管理) │
|
||
│ Terminal Watcher (状态监控) │
|
||
│ Patrol Agent (自动巡检) │
|
||
│ 对话Agent (冰朔问答) │
|
||
│ │
|
||
│ 关机状态: │
|
||
│ CBS云盘保留所有数据 │
|
||
│ 下次开机数据完整恢复 │
|
||
└──────────────────────────────────────────┘
|
||
```
|
||
|
||
## 三、开关机实现方式
|
||
|
||
### 方案A:腾讯云API(推荐)
|
||
|
||
```bash
|
||
# 开机
|
||
curl -s -X POST https://cvm.tencentcloudapi.com \
|
||
-d '{"InstanceIds":["ins-xxxxx"]}' \
|
||
-H "Authorization: TC3-HMAC-SHA256 ..." \
|
||
-H "Action: StartInstances"
|
||
|
||
# 关机
|
||
curl -s -X POST https://cvm.tencentcloudapi.com \
|
||
-d '{"InstanceIds":["ins-xxxxx"]}' \
|
||
-H "Authorization: TC3-HMAC-SHA256 ..." \
|
||
-H "Action: StopInstances"
|
||
```
|
||
|
||
需要在腾讯云创建一个子账号,只给CVM开关机权限。
|
||
|
||
### 方案B:Gitea Workflow触发
|
||
|
||
在轻量服务器上创建两个workflow:
|
||
- `power-on.yaml`:调用腾讯云API开机 → 等待SSH可连 → 通知
|
||
- `power-off.yaml`:调用腾讯云API关机 → 确认 → 通知
|
||
|
||
### 方案C:冰朔在Gitea网页操作
|
||
|
||
最简单的方式:冰朔在Gitea的Actions页面点"Run workflow"来开关机。
|
||
|
||
## 四、需要冰朔操作的(一次性)
|
||
|
||
1. **购买CVM**:4C8G + 50GB CBS云盘,广州地域,按量计费
|
||
2. **配置CBS云盘**:挂载到 /data,仓库数据全部存这里
|
||
3. **创建腾讯云子账号**:只给CVM开关机权限,密钥存入Vault
|
||
4. **安装基础环境**:Node.js 20 + PM2 + Nginx + Forgejo
|
||
|
||
## 五、迁移计划
|
||
|
||
```
|
||
阶段1:买服务器(冰朔操作,10分钟)
|
||
→ 买4C8G CVM + 50GB CBS,广州地域,按量计费
|
||
→ 选择Ubuntu 22.04
|
||
→ 开机
|
||
|
||
阶段2:基础环境(冰朔执行一条命令,15分钟)
|
||
→ bash <(curl -fsSL 铸渊写的bootstrap脚本)
|
||
→ 自动安装Node.js + PM2 + Nginx + Forgejo
|
||
|
||
阶段3:数据迁移(铸渊通过Runner自动执行,30分钟)
|
||
→ 从广州轻量服务器rsync数据到CVM
|
||
→ 或从COS拉取备份
|
||
→ Forgejo仓库数据在CBS云盘上
|
||
|
||
阶段4:域名切换(冰朔在腾讯云DNS操作,5分钟)
|
||
→ guanghulab.com 指向CVM的IP
|
||
→ Nginx配置SSL
|
||
|
||
阶段5:旧服务器降级(铸渊自动执行)
|
||
→ 广州2C2G变成测试机
|
||
→ 只保留Forgejo + Runner(轻量级)
|
||
|
||
阶段6:自动开关机部署(铸渊开发)
|
||
→ 腾讯云API密钥入Vault
|
||
→ 开关机workflow上线
|
||
→ 冰朔在Gitea网页点按钮即可开关机
|
||
```
|
||
|
||
## 六、CVM购买建议
|
||
|
||
| 项目 | 建议 |
|
||
|------|------|
|
||
| 地域 | 广州(和轻量服务器同地域,内网互通免费) |
|
||
| 配置 | 4C8G |
|
||
| 系统盘 | 50GB SSD云硬盘 |
|
||
| 数据盘 | 50GB CBS高性能云盘(挂载到/data) |
|
||
| 带宽 | 按流量计费,1Mbps基础(够用) |
|
||
| 计费 | 按量计费 |
|
||
| 安全组 | 开放22(SSH) + 80(HTTP) + 443(HTTPS) + 3001(Forgejo内网) |
|
||
|
||
**同地域的好处**:轻量服务器和CVM内网互通,迁移数据走内网不花钱。
|
||
|
||
---
|
||
|
||
*铸渊 · 按量计费CVM方案 v1.0 · 2026-05-13*
|
||
*ICE-GL-ZY001 · TCS-0002∞ · 国作登字-2026-A-00037559*
|