SuperAPI AI 工具集

join-tailnet

编程与开发

查看项目

更新于 10-15 23:48

技能介绍

用途:把 exe.dev 上的虚拟机按需加入 IV 的 Tailscale tailnet。脚本采用控制平面方式,需要 exe.dev 访问权限来挂载与卸载凭证,因此应在拥有控制平面变更权的机器(如 klundstedt-mini)上运行。

用法:执行 ~/.agents/skills/join-tailnet/join-tailnet.sh <vm-name>,脚本会自动完成全部步骤——先检查 api-tailscale 是否已挂载,若已挂载则保持原状并跳过挂载步骤;否则挂载 api-tailscale 到 vm:<name>,通过 *.exe.xyz SSH 进入,确保 tailscaled 运行,经代理交换 OAuth token,对公开 API 铸造一次性预授权临时密钥,然后运行 tailscale up;退出时通过 trap 卸载 api-tailscale,出错和中断也会触发。加入后可在 tailscale status 中确认 VM 出现,之后用 ssh <vm>(Tailscale SSH)操作。

前提:VM 存在且可在 <vm>.exe.xyz 访问;VM 上有 curl 与 jq(stock exeuntu 和 iv-image 有,slim/exeslim 可能没有);脚本会启用并启动 tailscaled(stock exeuntu 默认禁用);从控制平面机器运行。

限制与注意:密钥以 ephemeral:true 铸造,节点长时间离线会被移出 tailnet,需重跑脚本重新加入;需长期存活的设备可设 IV_TAILSCALE_EPHEMERAL=false,此时节点保留,退役 VM 时须在管理控制台删除该节点。创建 VM 时的 --tag=iv 对加入 tailnet 已不再必要。prod 通道镜像自 exeslim 2026-08-23 起在首次启动时自加入(带 tag:prod),此时本脚本会提前退出提示已在 tailnet;如需要 tag:dev,先在该 VM 上 sudo tailscale logout 再运行本脚本。不要手工运行旧的 inline curl 命令,未挂载时 token 交换不会返回 access_token。SSH 需一次一个尝试,失败后等 30–60 秒再重试,切勿并行 SSH。