名称: cloudflare-dns-updater
描述: "创建或更新一条经过 Cloudflare 代理的 DNS A 记录。适用于需要通过编程方式将子域名指向特定 IP 地址的场景。接收记录名称、域名和 IP 地址作为输入。"
元数据:
openclaw:
requires:
bins: ["python3"]
python: ["requests"]
此技能用于创建或更新 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:(可选)布尔值(true 或 false),用于设置 Cloudflare 代理状态。默认为 true。脚本将进度信息打印到标准输出。
- 成功时,打印确认消息以及创建/更新记录的 JSON 对象。
- 失败时,将描述性错误信息打印到标准错误输出,并以非零状态码退出。
使用此技能时,请遵循以下步骤:
CLOUDFLARE_API_TOKEN 环境变量是否已设置。若未设置,则通知用户并中止。zone(域名)、record(记录名称)和目标 ip(IP 地址)。exec 工具运行该命令。用户请求: "将 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 未设置:不要尝试运行脚本。通知用户缺少必需的环境变量,需要由管理员进行配置。