在云 Mac 上跑 OpenClaw,瓶颈常在无界面流水线里三件事对不齐:安装来源、守护进程、首轮验收。顺序:SSH 幂等脚本 → install.sh/npm → openclaw onboard --install-daemon → Node.js 22 → openclaw doctor 一页排错;末段补新加坡、日本、韩国、香港、美东、美西 M4 并行网关灰度 FAQ。
一、无界面自动化装机:把步骤写成「可幂等的 SSH 脚本」
约定单一运维用户,避免 root 与登录用户各装一套 CLI。顺序:磁盘与 Xcode 许可 → Node 22 → 官方脚本或包 → 写配置 → 装守护进程 → doctor;每步打日志、失败可重跑幂等,六地并行才可控。
二、install.sh 与 npm:只保留「真正跑网关」那一条 PATH
install.sh 适合新机标准化;npm 全局适合已有 nvm/fnm,但要清旧二进制、plist 写绝对路径。混用时高发:launchd 仍用旧 Node 或前缀未进守护进程环境——验收前同一用户跑 which openclaw、node -v。
三、openclaw onboard --install-daemon:把「人会忘记的重启」交给 launchd
openclaw onboard --install-daemon 对齐自启、拉起与日志目录。别靠 SSH 手启;应改配置 → unload/load plist → doctor。并行灰度保持同版本 digest,仅改 channels 或上游,避免「版本显示一致却行为分叉」。
四、Node 运行时前置:为什么首轮总卡在「明明装了却找不到」
文档基线为 Node.js 22:用安装器或版本管理器钉死主版本,在 plist EnvironmentVariables 或包装脚本里导出 PATH。旧 Node 常见「CLI 可用、子进程异常」。验收入口前重启守护进程,勿用交互 shell 临时 export 冒充常驻。
五、首轮验收与 openclaw doctor:一页式排错顺序
openclaw doctor 当上线门禁:① 版本与安装来源唯一;② 监听与防火墙/Tailscale/SSH 转发一致;③ 配置路径等于守护进程工作目录;④ Token/配对与日志时间对齐;⑤ 出站模型访问未被策略拦截。红了先停在这一层,勿同时改多条。
- 交互用户与 launchd 用户不一致:plist 或 home 权限是否错了?
- 升级后忘了 unload/load,仍在跑旧二进制?
- 并行灰度共用配对身份导致争用断连?
六、六地并行网关灰度案例 FAQ(新加坡/日本/韩国/香港/美东/美西)
分区:各大洲各一台 canary,跨境走 Tailscale,勿六区全员硬连单点。放量:亚太先新加坡+东京 doctor 全绿,再复制首尔、香港;美洲美西 canary 后平行美东,每步留回滚标签与健康检查。观测:日志时间与错误码对齐,跨省看P95。加机:doctor 持续报磁盘或缓存抖动时,先扩容或加席位,勿盲目升并发。
灰度期间的冒烟与回归门禁可与 跨区域性能回归与冒烟门禁 FAQ 对齐值班节奏;地域化沙盒并联执行器在六地如何分摊机位,另见 App Store 地域化沙盒云 Mac 并联 FAQ。
在 vpszap 云上,这一切更简单
无界面装机与常驻网关,放在独享物理 M4 Mac mini最合适:无虚拟化争抢;约五分钟开通,SSH+VNC;按天/周/月/季、无长约;新日韩港与美东美西可把网关就近部署,压低灰度抖动。
想把 OpenClaw 灰度贴近生产 macOS 网络,可先开一台 vpszap 云端 Mac mini 试跑。