Tailscale REST API:程序化 Tailnet 管理与基础设施自动化深度解析

引言 Tailscale 的 REST API v2 提供了 tailnet 的全生命周期管理接口,支持设备注册、ACL 更新、DNS 配置和 key 生成等 CRUD 操作。相较于 CLI,此 API 更适合 IaC(Infrastructure as Code)集成,如 Terraform Provider 和 GitOps 管道。 本文聚焦 API 核心端点实战,包含 Python/curl 示例、Terraform 配置,以及企业级自动化方案。通过表格总结端点权限,帮助构建零接触网络部署,实现从代码到 tailnet 的全自动化。 Tailscale API 采用 OAuth2(API Key 或 OIDC),速率限制为 100 req/min,支持 webhook 事件驱动。 Tailscale REST API 核心概念与认证 API 认证与权限模型 使用 Tailscale API Key(headless 或 interactive),通过 Authorization: Token tskey-xxxx。 端点类型 HTTP 方法 权限要求 示例路径 设备管理 GET/POST/DELETE devices:read/write /api/v2/tailnets/{net}/devices ACL 配置 PATCH acls:write /api/v2/tailnets/{net}/policy DNS 设置 PUT dns:write /api/v2/tailnets/{net}/dns Key 生成 POST authkeys:write /api/v2/tailnets/{net}/keys # curl 示例:列出设备 curl -H "Authorization: Token tskey-api-xxxx" \ https://api.tailscale.com/api/v2/tailnets/tskey-xxxx/devices \ | jq '.' 设备 CRUD 操作详解 # Python 示例:使用 requests 自动化设备管理 import requests TS_API_KEY = "tskey-api-xxxx" NET_ID = "tskey-net-xxxx" base_url = f"https://api.tailscale.com/api/v2/tailnets/{NET_ID}" headers = {"Authorization": f"Token {TS_API_KEY}"} # 创建设备 device = { "hostname": "k3s-node-01", "ephemeral": True, "tags": ["tag:k3s"] } resp = requests.post(f"{base_url}/devices", json=device, headers=headers) print(resp.json()) 基础设施自动化:Terraform 与 GitOps Terraform Tailscale Provider 集成 官方 provider 支持 HCL 声明式管理。 ...

April 4, 2026