Initial commit: Tencent DNSPod DNS deployment skill
Features: - Single record deployment (A/CNAME/MX/TXT records) - Batch deployment from JSON configuration - Quick service deployment (Web/API/CDN) - .env file support for secure credential management - Complete documentation with installation guide - Error handling and troubleshooting guide Scripts: - deploy_record.py - Single record management - batch_deploy.py - Batch deployment from config - deploy_service.py - Quick service templates - list_records.py - Query existing records - delete_record.py - Remove DNS records Documentation: - SKILL.md - Main skill documentation - INSTALL.md - Installation and quick start - ENV_SETUP.md - Environment configuration guide - README.md - Project overview - references/api-auth.md - API authentication details - references/common-errors.md - Error handling - examples/dns-config.json - Batch deployment example
This commit is contained in:
259
SKILL.md
Normal file
259
SKILL.md
Normal file
@@ -0,0 +1,259 @@
|
||||
---
|
||||
name: tencent-dnspod
|
||||
description: |
|
||||
腾讯云DNSPod域名快速部署工具。用于自动化部署DNS记录、批量配置域名解析、快速上线服务。
|
||||
当用户需要: (1) 快速添加DNS记录部署新服务, (2) 批量配置A/CNAME/MX等记录,
|
||||
(3) 域名解析自动化管理, (4) DevOps域名部署流程时触发。
|
||||
---
|
||||
|
||||
# 腾讯云DNSPod域名快速部署
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 配置认证
|
||||
|
||||
获取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"
|
||||
```
|
||||
|
||||
### 2. 核心命令
|
||||
|
||||
**添加单条记录(最常用):**
|
||||
```bash
|
||||
python scripts/deploy_record.py \
|
||||
--domain example.com \
|
||||
--subdomain www \
|
||||
--type A \
|
||||
--value 1.2.3.4 \
|
||||
--line "默认"
|
||||
```
|
||||
|
||||
**批量部署(从配置文件):**
|
||||
```bash
|
||||
python scripts/batch_deploy.py \
|
||||
--domain example.com \
|
||||
--config dns-config.json
|
||||
```
|
||||
|
||||
**快速配置服务(常用组合):**
|
||||
```bash
|
||||
python scripts/deploy_service.py \
|
||||
--domain example.com \
|
||||
--service web \
|
||||
--ip 1.2.3.4
|
||||
```
|
||||
|
||||
**删除记录:**
|
||||
```bash
|
||||
python scripts/delete_record.py \
|
||||
--domain example.com \
|
||||
--subdomain www
|
||||
```
|
||||
|
||||
## 域名快速部署流程
|
||||
|
||||
### 场景1: 部署新Web服务
|
||||
```bash
|
||||
# 一键部署www和主域名
|
||||
python scripts/deploy_service.py \
|
||||
--domain example.com \
|
||||
--service web \
|
||||
--ip 1.2.3.4
|
||||
|
||||
# 自动创建:
|
||||
# - example.com (A记录)
|
||||
# - www.example.com (A记录)
|
||||
# - *.example.com (泛域名A记录,可选)
|
||||
```
|
||||
|
||||
### 场景2: 部署API服务
|
||||
```bash
|
||||
# 部署api子域名
|
||||
python scripts/deploy_record.py \
|
||||
--domain example.com \
|
||||
--subdomain api \
|
||||
--type A \
|
||||
--value 1.2.3.4
|
||||
```
|
||||
|
||||
### 场景3: 配置邮件服务
|
||||
```bash
|
||||
# 一键配置MX记录
|
||||
python scripts/deploy_mx.py \
|
||||
--domain example.com \
|
||||
--mx-server mx.example.com \
|
||||
--priority 10
|
||||
```
|
||||
|
||||
### 场景4: CDN加速配置
|
||||
```bash
|
||||
# 添加CNAME指向CDN
|
||||
python scripts/deploy_record.py \
|
||||
--domain example.com \
|
||||
--subdomain cdn \
|
||||
--type CNAME \
|
||||
--value cdn.example.com.cdn.dnsv1.com
|
||||
```
|
||||
|
||||
### 场景5: 批量部署多个环境
|
||||
```bash
|
||||
# 从配置文件批量创建
|
||||
python scripts/batch_deploy.py \
|
||||
--domain example.com \
|
||||
--config deployments/dev.json
|
||||
|
||||
# 配置文件示例见下文
|
||||
```
|
||||
|
||||
## 记录类型说明
|
||||
|
||||
| 类型 | 用途 | 示例 |
|
||||
|------|------|------|
|
||||
| A | 指向IPv4地址 | www → 1.2.3.4 |
|
||||
| CNAME | 指向域名别名 | www → cdn.example.com |
|
||||
| MX | 邮件服务器 | @ → mx.example.com |
|
||||
| TXT | 文本记录(验证/SPF) | @ → "v=spf1 include:_spf.example.com ~all" |
|
||||
| AAAA | 指向IPv6地址 | www → 2001:db8::1 |
|
||||
|
||||
## 批量部署配置文件格式
|
||||
|
||||
`dns-config.json`:
|
||||
```json
|
||||
{
|
||||
"records": [
|
||||
{
|
||||
"subdomain": "@",
|
||||
"type": "A",
|
||||
"value": "1.2.3.4",
|
||||
"line": "默认"
|
||||
},
|
||||
{
|
||||
"subdomain": "www",
|
||||
"type": "A",
|
||||
"value": "1.2.3.4",
|
||||
"line": "默认"
|
||||
},
|
||||
{
|
||||
"subdomain": "api",
|
||||
"type": "A",
|
||||
"value": "1.2.3.5",
|
||||
"line": "电信"
|
||||
},
|
||||
{
|
||||
"subdomain": "cdn",
|
||||
"type": "CNAME",
|
||||
"value": "cdn.example.com.cdn.dnsv1.com",
|
||||
"line": "默认"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
使用批量配置:
|
||||
```bash
|
||||
python scripts/batch_deploy.py \
|
||||
--domain example.com \
|
||||
--config dns-config.json
|
||||
```
|
||||
|
||||
## 线路类型说明
|
||||
|
||||
常用线路值:
|
||||
- `默认` - 默认线路
|
||||
- `电信` - 电信用户
|
||||
- `联通` - 联通用户
|
||||
- `移动` - 移动用户
|
||||
- `境外` - 海外用户
|
||||
- `搜索引擎` - 爬虫线路
|
||||
|
||||
查看完整线路列表:
|
||||
```bash
|
||||
python scripts/list_lines.py --domain example.com
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 1. 记录冲突
|
||||
如果记录已存在,脚本会提示是否更新。使用 `--force` 强制更新。
|
||||
|
||||
### 2. 批量操作失败
|
||||
批量操作会继续执行后续记录,最后汇总结果。检查输出中的 `[FAIL]` 标记。
|
||||
|
||||
### 3. API频率限制
|
||||
默认限制: 20次/秒。大批量部署时会自动限速。
|
||||
|
||||
### 4. 域名未添加
|
||||
如果域名未添加到DNSPod,使用 `--create-domain` 自动创建:
|
||||
```bash
|
||||
python scripts/deploy_record.py \
|
||||
--domain example.com \
|
||||
--create-domain \
|
||||
--subdomain www \
|
||||
--type A \
|
||||
--value 1.2.3.4
|
||||
```
|
||||
|
||||
## API错误处理
|
||||
|
||||
详细错误说明见 [common-errors.md](references/common-errors.md)
|
||||
|
||||
## 高级功能
|
||||
|
||||
### 创建快照(部署前备份)
|
||||
```bash
|
||||
python/scripts/snapshot.py \
|
||||
--domain example.com \
|
||||
--action create \
|
||||
--name "部署前备份"
|
||||
```
|
||||
|
||||
### 回滚快照
|
||||
```bash
|
||||
python scripts/snapshot.py \
|
||||
--domain example.com \
|
||||
--action rollback \
|
||||
--snapshot-id <snapshot-id>
|
||||
```
|
||||
|
||||
### 查看部署历史
|
||||
```bash
|
||||
python scripts/list_records.py \
|
||||
--domain example.com \
|
||||
--show-changes
|
||||
```
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **部署前备份** - 重大部署前先创建快照
|
||||
2. **分环境管理** - 使用不同子域名(dev/stage/prod)
|
||||
3. **TTL设置** - 生产环境600s,测试环境60s
|
||||
4. **批量测试** - 先在测试域名验证配置,再批量部署
|
||||
5. **记录备注** - 添加 `--remark` 标记记录用途
|
||||
|
||||
## 示例: 完整部署流程
|
||||
|
||||
```bash
|
||||
# 1. 部署前备份
|
||||
python scripts/snapshot.py --domain example.com --action create --name "部署前"
|
||||
|
||||
# 2. 批量部署
|
||||
python scripts/batch_deploy.py \
|
||||
--domain example.com \
|
||||
--config dns-config.json
|
||||
|
||||
# 3. 验证部署
|
||||
python scripts/list_records.py --domain example.com
|
||||
|
||||
# 4. 测试解析
|
||||
dig www.example.com
|
||||
```
|
||||
Reference in New Issue
Block a user