Cloudflare Manager
Standardized system for managing Cloudflare infrastructure and local tunnel ingress.
Prerequisites
- - Binary:
python3 and cloudflared must be installed. - Credentials:
CLOUDFLARE_API_TOKEN (minimal Zone permissions) and CLOUDFLARE_ZONE_ID.
Setup
- 1. Define credentials in the environment or a local
.env file. - Initialize the local environment:
bash scripts/install.sh.
Core Workflows
1. DNS Management
Add, list, or delete DNS records via Cloudflare API.
- - List: INLINECODE6
- Add: INLINECODE7
2. Tunnel Ingress (Local)
Update
/etc/cloudflared/config.yml and restart the tunnel service.
- - Update: INLINECODE9
- Safety: Use
--dry-run to preview configuration changes before application.
Security & Permissions
- - Sudo Usage: The
update-ingress command requires sudo to write to system directories and restart the cloudflared service. - Least Privilege: Configure restricted sudo access using the pattern in
references/sudoers.example. - Token Isolation: Ensure API tokens are scoped narrowly to specific zones and permissions.
Reference
Cloudflare Manager
用于管理Cloudflare基础设施和本地隧道入口的标准化系统。
前置条件
- - 二进制文件:必须安装python3和cloudflared。
- 凭证:需要CLOUDFLAREAPITOKEN(最小区域权限)和CLOUDFLAREZONEID。
设置
- 1. 在环境变量或本地.env文件中定义凭证。
- 初始化本地环境:bash scripts/install.sh。
核心工作流
1. DNS管理
通过Cloudflare API添加、列出或删除DNS记录。
- - 列出:python3 $WORKSPACE/skills/cloudflare-manager/scripts/cfmanager.py list-dns
- 添加:python3 $WORKSPACE/skills/cloudflare-manager/scripts/cfmanager.py add-dns --type A --name <子域名> --content
2. 隧道入口(本地)
更新/etc/cloudflared/config.yml并重启隧道服务。
- - 更新:python3 $WORKSPACE/skills/cloudflare-manager/scripts/cf_manager.py update-ingress --hostname <主机名> --service
- 安全:使用--dry-run参数预览配置更改后再应用。
安全与权限
- - Sudo使用:update-ingress命令需要sudo权限才能写入系统目录并重启cloudflared服务。
- 最小权限:使用references/sudoers.example中的模式配置受限的sudo访问权限。
- 令牌隔离:确保API令牌的作用域严格限定在特定区域和权限范围内。
参考