跳转到内容

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.14+ 仍受支持)
  5. OpenClaw —— 基于主机,非容器化
  6. Systemd 服务 —— 自动启动并带有安全加固

  1. Switch to the openclaw user

    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

    加入您的 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 是为了用于代理沙箱(隔离的工具执行),而不是为了运行网关本身。有关沙箱配置,请参阅 Multi-Agent 沙箱 and Tools

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

  1. Install prerequisites

    Terminal window
    sudo apt update && sudo apt install -y ansible git
  2. Clone the repository

    Terminal window
    git clone https://github.com/openclaw/openclaw-ansible.git
    cd openclaw-ansible
  3. Install Ansible collections

    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 设置为手动更新。有关标准更新流程,请参阅 Updating

要重新运行 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
cd /opt/openclaw/openclaw
sudo -u openclaw ./scripts/sandbox-setup.sh
提供商登录失败

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

Terminal window
sudo -i -u openclaw
openclaw channels login

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