Files
DNSPod-Skill/README.md
OpenClaw 7abea390ad Initial commit: Tencent DNSPod DNS deployment skill
- Support for single record deployment
- Batch deployment from JSON config
- Service quick deployment (Web/API/CDN)
- .env file support for secure credentials
- Complete documentation
2026-03-01 11:44:05 +08:00

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!