- Support for single record deployment - Batch deployment from JSON config - Service quick deployment (Web/API/CDN) - .env file support for secure credentials - Complete documentation
259 lines
5.6 KiB
Markdown
259 lines
5.6 KiB
Markdown
# 腾讯云DNSPod域名快速部署 Skill
|
|
|
|
这是一个用于快速部署和自动化管理腾讯云DNSPod域名解析的OpenClaw Skill。
|
|
|
|
## 功能特性
|
|
|
|
✅ **单条记录快速部署** - 添加/更新A、CNAME、MX等记录
|
|
✅ **批量部署** - 从JSON配置文件批量创建记录
|
|
✅ **服务快速部署** - 一键部署Web、API、CDN等服务
|
|
✅ **记录查询** - 查看域名下的所有解析记录
|
|
✅ **记录删除** - 删除不需要的DNS记录
|
|
✅ **自动域名创建** - 部署时自动创建不存在的域名
|
|
|
|
## 安装
|
|
|
|
### 1. 安装依赖
|
|
```bash
|
|
cd tencent-dnspod
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### 2. 配置认证密钥
|
|
|
|
访问腾讯云控制台获取API密钥:
|
|
https://console.cloud.tencent.com/cam/capi
|
|
|
|
有两种配置方式:
|
|
|
|
**方式1: 使用 .env 文件(推荐)**
|
|
```bash
|
|
cp .env.example .env
|
|
# 编辑 .env 文件,填入你的密钥
|
|
```
|
|
|
|
**方式2: 设置环境变量**
|
|
```bash
|
|
export TENCENT_SECRET_ID="你的SecretId"
|
|
export TENCENT_SECRET_KEY="你的SecretKey"
|
|
```
|
|
|
|
### 3. 验证安装
|
|
```bash
|
|
python scripts/list_records.py --domain example.com
|
|
```
|
|
|
|
## 快速使用
|
|
|
|
### 场景1: 部署Web服务
|
|
|
|
一键部署主域名和www子域名:
|
|
```bash
|
|
python scripts/deploy_service.py \
|
|
--domain example.com \
|
|
--service web \
|
|
--ip 1.2.3.4
|
|
```
|
|
|
|
带泛域名解析:
|
|
```bash
|
|
python scripts/deploy_service.py \
|
|
--domain example.com \
|
|
--service web \
|
|
--ip 1.2.3.4 \
|
|
--wildcard
|
|
```
|
|
|
|
### 场景2: 部署API服务
|
|
```bash
|
|
python scripts/deploy_service.py \
|
|
--domain example.com \
|
|
--service api \
|
|
--ip 1.2.3.5 \
|
|
--subdomain api
|
|
```
|
|
|
|
### 场景3: 批量部署
|
|
|
|
从配置文件批量部署:
|
|
```bash
|
|
python scripts/batch_deploy.py \
|
|
--domain example.com \
|
|
--config examples/dns-config.json
|
|
```
|
|
|
|
### 场景4: 单条记录管理
|
|
|
|
添加A记录:
|
|
```bash
|
|
python scripts/deploy_record.py \
|
|
--domain example.com \
|
|
--subdomain www \
|
|
--type A \
|
|
--value 1.2.3.4
|
|
```
|
|
|
|
添加CNAME记录(CDN):
|
|
```bash
|
|
python scripts/deploy_record.py \
|
|
--domain example.com \
|
|
--subdomain cdn \
|
|
--type CNAME \
|
|
--value cdn.example.com.cdn.dnsv1.com
|
|
```
|
|
|
|
强制更新现有记录:
|
|
```bash
|
|
python scripts/deploy_record.py \
|
|
--domain example.com \
|
|
--subdomain www \
|
|
--type A \
|
|
--value 1.2.3.5 \
|
|
--force
|
|
```
|
|
|
|
### 场景5: 查询和删除
|
|
|
|
查询所有记录:
|
|
```bash
|
|
python scripts/list_records.py --domain example.com
|
|
```
|
|
|
|
删除记录:
|
|
```bash
|
|
python scripts/delete_record.py \
|
|
--domain example.com \
|
|
--subdomain www \
|
|
--type A
|
|
```
|
|
|
|
## 目录结构
|
|
|
|
```
|
|
tencent-dnspod/
|
|
├── SKILL.md # Skill说明文档
|
|
├── README.md # 本文件
|
|
├── requirements.txt # Python依赖
|
|
├── scripts/ # 脚本目录
|
|
│ ├── deploy_record.py # 单条记录部署
|
|
│ ├── batch_deploy.py # 批量部署
|
|
│ ├── deploy_service.py # 服务快速部署
|
|
│ ├── list_records.py # 记录查询
|
|
│ └── delete_record.py # 记录删除
|
|
├── references/ # 参考文档
|
|
│ ├── api-auth.md # API认证说明
|
|
│ └── common-errors.md # 常见错误处理
|
|
└── examples/ # 示例配置
|
|
└── dns-config.json # 批量部署配置示例
|
|
```
|
|
|
|
## 配置文件格式
|
|
|
|
批量部署配置文件(JSON格式):
|
|
```json
|
|
{
|
|
"records": [
|
|
{
|
|
"subdomain": "@",
|
|
"type": "A",
|
|
"value": "1.2.3.4",
|
|
"line": "默认",
|
|
"ttl": 600,
|
|
"remark": "主域名"
|
|
},
|
|
{
|
|
"subdomain": "www",
|
|
"type": "A",
|
|
"value": "1.2.3.4",
|
|
"line": "默认",
|
|
"remark": "Web服务"
|
|
},
|
|
{
|
|
"subdomain": "api",
|
|
"type": "A",
|
|
"value": "1.2.3.5",
|
|
"line": "电信",
|
|
"remark": "API服务"
|
|
},
|
|
{
|
|
"subdomain": "cdn",
|
|
"type": "CNAME",
|
|
"value": "cdn.example.com.cdn.dnsv1.com",
|
|
"line": "默认",
|
|
"remark": "CDN加速"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## 支持的记录类型
|
|
|
|
| 类型 | 说明 | 示例值 |
|
|
|------|------|--------|
|
|
| A | IPv4地址 | 1.2.3.4 |
|
|
| AAAA | IPv6地址 | 2001:db8::1 |
|
|
| CNAME | 别名 | cdn.example.com |
|
|
| MX | 邮件服务器 | mx.example.com |
|
|
| TXT | 文本记录 | "v=spf1 include:_spf.example.com ~all" |
|
|
| NS | 域名服务器 | ns1.example.com |
|
|
|
|
## 常用线路
|
|
|
|
- `默认` - 默认线路
|
|
- `电信` - 电信用户
|
|
- `联通` - 联通用户
|
|
- `移动` - 移动用户
|
|
- `境外` - 海外用户
|
|
- `搜索引擎` - 爬虫线路
|
|
|
|
## 最佳实践
|
|
|
|
1. **部署前测试** - 先在测试域名验证配置
|
|
2. **设置合理TTL** - 生产环境600s,测试环境60s
|
|
3. **使用批量部署** - 多条记录用配置文件管理
|
|
4. **添加记录备注** - 方便后续维护
|
|
5. **分环境管理** - 使用不同子域名(dev/stage/prod)
|
|
6. **注意API限频** - 批量操作时控制请求频率
|
|
|
|
## 常见问题
|
|
|
|
### 1. 认证失败
|
|
```
|
|
错误: AuthFailure
|
|
解决: 检查环境变量 TENCENT_SECRET_ID 和 TENCENT_SECRET_KEY
|
|
```
|
|
|
|
### 2. 域名不存在
|
|
```
|
|
错误: ResourceNotFound.Domain
|
|
解决: 使用 --create-domain 参数自动创建域名
|
|
```
|
|
|
|
### 3. 记录已存在
|
|
```
|
|
错误: RecordAlreadyExists
|
|
解决: 使用 --force 参数强制更新
|
|
```
|
|
|
|
### 4. API频率限制
|
|
```
|
|
错误: RequestLimitExceeded
|
|
解决: 批量操作时增加 --delay 参数(默认0.5秒)
|
|
```
|
|
|
|
详细错误处理见: [references/common-errors.md](references/common-errors.md)
|
|
|
|
## 技术支持
|
|
|
|
- **DNSPod API文档:** https://cloud.tencent.com/document/product/1427/56152
|
|
- **腾讯云SDK:** https://cloud.tencent.com/document/sdk
|
|
- **DNSPod控制台:** https://console.dnspod.cn
|
|
|
|
## 许可证
|
|
|
|
MIT License
|
|
|
|
## 贡献
|
|
|
|
欢迎提交Issue和Pull Request!
|