Ansible 安装
使用 openclaw-ansible 将 OpenClaw 部署到生产服务器——这是一个安全优先架构的自动化安装器,帮你把龙虾养在生产环境里。
信息: openclaw-ansible 仓库是 Ansible 部署的权威来源,本页只是快速概览。
前置条件
| 要求 | 详情 |
|---|---|
| 操作系统 | Debian 11+ 或 Ubuntu 20.04+ |
| 权限 | root 或 sudo 权限 |
| 网络 | 能访问互联网以安装软件包 |
| Ansible | 2.14+(快速启动脚本会自动安装) |
你将获得什么
- 防火墙优先安全 — UFW + Docker 隔离(仅 SSH + Tailscale 对外开放)
- Tailscale VPN — 无需暴露公网端口即可安全远程访问
- Docker — 隔离的沙箱容器,仅绑定 localhost
- 纵深防御 — 4 层安全架构
- systemd 集成 — 开机自启,带安全加固
- 一命令完成 — 几分钟内完成全部部署
快速开始
一行命令完成安装:
curl -fsSL https://raw.githubusercontent.com/openclaw/openclaw-ansible/main/install.sh | bash
安装了什么
Ansible playbook 会安装并配置:
- Tailscale — 安全远程访问的 mesh VPN
- UFW 防火墙 — 仅开放 SSH + Tailscale 端口
- Docker CE + Compose V2 — 用于 Agent 沙箱
- Node.js 24 + pnpm — 运行时依赖(Node 22 LTS,当前为
22.14+,仍受支持) - OpenClaw — 运行在宿主机上,不放入容器
- systemd 服务 — 开机自启,带安全加固
注意: Gateway 直接运行在宿主机(不在 Docker 中),但 Agent 沙箱使用 Docker 隔离。详见 Sandboxing。
安装后配置
切换到 openclaw 用户
sudo -i -u openclaw
运行引导向导
安装后脚本会引导你完成 OpenClaw 设置配置。
连接消息 Provider
登录 WhatsApp、Telegram、Discord 或 Signal:
openclaw channels login
验证安装
sudo systemctl status openclaw
sudo journalctl -u openclaw -f
连接 Tailscale
加入你的 VPN mesh 以实现安全远程访问。
常用命令
# 查看服务状态
sudo systemctl status openclaw
# 查看实时日志
sudo journalctl -u openclaw -f
# 重启 Gateway
sudo systemctl restart openclaw
# Provider 登录(以 openclaw 用户运行)
sudo -i -u openclaw
openclaw channels login
安全架构
部署采用 4 层防御模型:
- 防火墙(UFW) — 对外仅开放 SSH(22)和 Tailscale(41641/udp)
- VPN(Tailscale) — Gateway 只能通过 VPN mesh 访问
- Docker 隔离 — DOCKER-USER iptables chain 防止端口对外暴露
- systemd 加固 — NoNewPrivileges、PrivateTmp、非特权用户
验证你的对外攻击面:
nmap -p- YOUR_SERVER_IP
只有 22 端口(SSH)应该是开放的,所有其他服务(Gateway、Docker)均已锁定。
Docker 用于 Agent 沙箱(隔离工具执行),不是用来运行 Gateway 本身的。沙箱配置详见 Multi-Agent Sandbox and Tools。
手动安装
如果你想自己控制每一步:
安装前置依赖
sudo apt update && sudo apt install -y ansible git
克隆仓库
git clone https://github.com/openclaw/openclaw-ansible.git
cd openclaw-ansible
安装 Ansible collections
ansible-galaxy collection install -r requirements.yml
运行 playbook
./run-playbook.sh
也可以直接运行并在之后手动执行配置脚本:
ansible-playbook playbook.yml --ask-become-pass
# 然后运行:/tmp/openclaw-setup.sh
更新
Ansible 安装器配置为手动更新。标准更新流程见 Updating。
重新运行 Ansible playbook(例如配置变更时):
cd openclaw-ansible
./run-playbook.sh
此操作是幂等的,可以安全地多次运行。
故障排查
防火墙阻断了我的连接
- 先确认能通过 Tailscale VPN 访问
- SSH 访问(22 端口)始终允许
- Gateway 按设计只能通过 Tailscale 访问
服务无法启动
# 查看日志
sudo journalctl -u openclaw -n 100
# 验证权限
sudo ls -la /opt/openclaw
# 测试手动启动
sudo -i -u openclaw
cd ~/openclaw
openclaw gateway run
Docker 沙箱问题
# 确认 Docker 正在运行
sudo systemctl status docker
# 查看沙箱镜像
sudo docker images | grep openclaw-sandbox
# 如果镜像缺失,重新构建
cd /opt/openclaw/openclaw
sudo -u openclaw ./scripts/sandbox-setup.sh
Provider 登录失败
确保以 openclaw 用户运行:
sudo -i -u openclaw
openclaw channels login
高级配置
详细的安全架构和故障排查,请参考 openclaw-ansible 仓库:
相关文档
- openclaw-ansible — 完整部署指南
- Docker — 容器化 Gateway 配置
- Sandboxing — Agent 沙箱配置
- Multi-Agent Sandbox and Tools — 按 Agent 隔离