跳转到内容

Ansible

使用 openclaw-ansible 将 OpenClaw 部署到生产服务器 —— 这是一个具有安全优先架构的自动安装程序。

需求详情
操作系统Debian 11+ 或 Ubuntu 20.04+
访问权限Root 或 sudo 权限
网络用于安装软件包的互联网连接
Ansible2.14+(由快速启动脚本自动安装)
  • 防火墙优先的安全 —— UFW + Docker 隔离(仅 SSH + Tailscale 可访问)
  • Tailscale VPN —— 安全的远程访问,无需公开暴露服务
  • Docker —— 隔离的沙箱容器,仅本地主机绑定
  • 深度防御 —— 4 层安全架构
  • Systemd 集成 —— 开机自动启动并包含安全加固
  • 一键设置 —— 数分钟内完成完整部署

一键安装:

Terminal window
curl -fsSL https://raw.githubusercontent.com/openclaw/openclaw-ansible/main/install.sh | bash

该 Ansible playbook 将安装并配置:

  1. Tailscale —— 用于安全远程访问的网状 VPN
  2. UFW 防火墙 —— 仅开放 SSH 和 Tailscale 端口
  3. Docker CE + Compose V2 —— 用于默认的代理沙箱后端
  4. Node.js 24 + pnpm — 运行时依赖(Node 22 LTS,目前为 22.19+,仍受支持)
  5. OpenClaw —— 基于主机,未容器化
  6. Systemd 服务 —— 开机自动启动并包含安全加固

  1. 切换到 openclaw 用户

    bash sudo -i -u openclaw

  2. 运行新手引导向导

    安装后脚本将引导您配置 OpenClaw 设置。

  3. 连接消息提供商

    登录 WhatsApp、Telegram、Discord 或 Signal: bash openclaw channels login

  4. 验证安装

    bash sudo systemctl status openclaw sudo journalctl -u openclaw -f

  5. Tailscale连接到 Tailscale

    加入您的 VPN 网络以实现安全的远程访问。

Terminal window
# Check service status
sudo systemctl status openclaw
# View live logs
sudo journalctl -u openclaw -f
# Restart gateway
sudo systemctl restart openclaw
# Provider login (run as openclaw user)
sudo -i -u openclaw
openclaw channels login

该部署使用了 4 层防御模型:

  1. 防火墙 (UFW) — 仅公开 SSH (22) + Tailscale (41641/udp)
  2. VPN (Tailscale) — 网关只能通过 VPN 网络访问
  3. Docker 隔离 — DOCKER-USER iptables 链防止外部端口暴露
  4. Systemd 加固 — NoNewPrivileges、PrivateTmp、非特权用户

要验证您的外部攻击面:

Terminal window
nmap -p- YOUR_SERVER_IP

仅端口 22 (SSH) 应该是开放的。所有其他服务(网关、Docker)均已锁定。

安装 Docker 是为了 Agent 沙箱(隔离工具执行),而不是为了运行网关本身。有关沙箱配置,请参阅 多 Agent 沙箱和工具

如果您更喜欢手动控制而非自动化:

  1. 安装先决条件

    Terminal window
    sudo apt update && sudo apt install -y ansible git
  2. 克隆仓库

    Terminal window
    git clone https://github.com/openclaw/openclaw-ansible.git
    cd openclaw-ansible
  3. Ansible安装 Ansible 集合

    Terminal window
    ansible-galaxy collection install -r requirements.yml
  4. 运行 playbook

    Terminal window
    ./run-playbook.sh

    或者,直接运行,然后手动执行后续的设置脚本:

    /tmp/openclaw-setup.sh
    ansible-playbook playbook.yml --ask-become-pass

Ansible 安装程序将 OpenClaw 配置为手动更新。有关标准更新流程,请参阅 更新

要重新运行 Ansible playbook(例如,用于更改配置):

Terminal window
cd openclaw-ansible
./run-playbook.sh

这是幂等的,可以安全地多次运行。

防火墙阻止了我的连接
  • 确保您首先可以通过 Tailscale VPN 访问
  • 始终允许 SSH 访问(端口 22)
  • 根据设计,网关只能通过 Tailscale 访问
服务无法启动
Terminal window
# Check logs
sudo journalctl -u openclaw -n 100
# Verify permissions
sudo ls -la /opt/openclaw
# Test manual start
sudo -i -u openclaw
cd ~/openclaw
openclaw gateway run
Docker sandbox issues
Terminal window
# Verify Docker is running
sudo systemctl status docker
# Check sandbox image
sudo docker images | grep openclaw-sandbox
# Build sandbox image if missing (requires source checkout)
cd /opt/openclaw/openclaw
sudo -u openclaw ./scripts/sandbox-setup.sh
# For npm installs without a source checkout, see
# https://docs.openclaw.ai/gateway/sandboxing#images-and-setup
提供商登录失败

确保您以 openclaw 用户身份运行:

Terminal window
sudo -i -u openclaw
openclaw channels login

有关详细的安全架构和故障排除,请参阅 openclaw-ansible 仓库: