OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  cloudflare-dns-updater:创建或更新代理化的 Cloudflare DNS 记录

cloudflare-dns-updater:创建或更新代理化的 Cloudflare DNS 记录

 
  chao ·  2026-02-08 07:12:14 · 3 次点击  · 0 条评论  

名称: cloudflare-dns-updater
描述: "创建或更新一条经过 Cloudflare 代理的 DNS A 记录。适用于需要通过编程方式将子域名指向特定 IP 地址的场景。接收记录名称、域名和 IP 地址作为输入。"
元数据:
openclaw:
requires:
bins: ["python3"]
python: ["requests"]


Cloudflare DNS 更新器

此技能用于创建或更新 Cloudflare DNS 的 'A' 记录,将其指向指定的 IP 地址,并确保记录启用代理。它是自动化服务部署和 DNS 管理的基础工具。

前提条件

此技能要求设置环境变量 CLOUDFLARE_API_TOKEN,其值应为具有 DNS 编辑权限的有效 Cloudflare API Token。

模型在尝试使用此技能前,应先验证此前提条件。如果变量未设置,则应通知用户并停止操作。

核心操作:scripts/update-record.py

核心逻辑由 update-record.py 脚本处理。

输入(命令行参数)

  • --zone:(必需)根域名。例如:example.com
  • --record:(必需)记录名称(子域名)。根域名本身请使用 @。例如:www
  • --ip:(必需)记录要指向的 IPv4 地址。
  • --proxied:(可选)布尔值(truefalse),用于设置 Cloudflare 代理状态。默认为 true

输出

脚本将进度信息打印到标准输出。
- 成功时,打印确认消息以及创建/更新记录的 JSON 对象。
- 失败时,将描述性错误信息打印到标准错误输出,并以非零状态码退出。

执行流程

使用此技能时,请遵循以下步骤:

  1. 验证前提条件:检查 CLOUDFLARE_API_TOKEN 环境变量是否已设置。若未设置,则通知用户并中止。
  2. 收集输入:从用户请求中识别 zone(域名)、record(记录名称)和目标 ip(IP 地址)。
  3. 构建命令:构建用于执行脚本的完整 shell 命令。
  4. 执行命令:使用 exec 工具运行该命令。
  5. 报告结果
    • 如果命令执行成功,向用户报告记录创建或更新成功。
    • 如果命令执行失败,分析来自标准错误输出的错误信息,并以清晰易懂的方式向用户报告问题。

使用示例

用户请求: "将 www.example.com 指向服务器的公网 IP。"

AI 的思考过程:
1. 用户想要更新 Cloudflare 上的 DNS 记录。cloudflare-dns-updater 技能非常适合此任务。
2. 我将使用 update-record.py 脚本。
3. 我需要域名、记录名称和 IP 地址。
- 域名:example.com
- 记录名称:www
- IP 地址:我首先需要找到服务器的公网 IP。可以使用 curl -s https://ipv4.icanhazip.com/
4. 我将先获取 IP 地址,然后构建最终命令。
5. 我将执行命令并报告结果。

AI 的操作:

# 步骤 1:获取 IP 地址
PUBLIC_IP=$(curl -s https://ipv4.icanhazip.com/)

# 步骤 2:运行技能的脚本
python3 skills/cloudflare-dns-updater/scripts/update-record.py \
  --zone "example.com" \
  --record "www" \
  --ip "$PUBLIC_IP"

故障处理策略

  • 如果 CLOUDFLARE_API_TOKEN 未设置:不要尝试运行脚本。通知用户缺少必需的环境变量,需要由管理员进行配置。
  • 如果脚本因错误退出:读取标准错误输出中的错误信息。常见错误包括:无效的 API Token、错误的域名或权限不足。向用户报告具体的错误信息。
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor