Установка через Ansible
Рекомендуемый способ развёртывания OpenClaw на production-серверах — openclaw-ansible — автоматический установщик с упором на безопасность.
Быстрый старт
Установка одной командой:
curl -fsSL https://raw.githubusercontent.com/openclaw/openclaw-ansible/main/install.sh | bash
Полное руководство: github.com/openclaw/openclaw-ansible
Репозиторий openclaw-ansible — основной источник по развёртыванию через Ansible. Эта страница — краткий обзор.
Что вы получите
- Файрвол на первом месте: UFW + изоляция Docker (доступны только SSH + Tailscale)
- Tailscale VPN: безопасный удалённый доступ без публикации сервисов
- Docker: изолированные sandbox-контейнеры, привязка только к localhost
- Эшелонированная защита: 4 уровня безопасности
- Установка одной командой: полное развёртывание за несколько минут
- Интеграция с systemd: автозапуск при загрузке с hardening-настройками
Требования
- ОС: Debian 11+ или Ubuntu 20.04+
- Доступ: root или sudo-привилегии
- Сеть: подключение к интернету для установки пакетов
- Ansible: 2.14+ (устанавливается автоматически скриптом быстрого старта)
Что устанавливается
Ansible-плейбук устанавливает и настраивает:
- Tailscale (mesh-VPN для безопасного удалённого доступа)
- Файрвол UFW (только порты SSH + Tailscale)
- Docker CE + Compose V2 (для sandbox-контейнеров агентов)
- Node.js 24 + pnpm (зависимости среды выполнения; Node 22 LTS, сейчас
22.16+, по-прежнему поддерживается) - OpenClaw (установка на хост, не в контейнер)
- Systemd-сервис (автозапуск с security-hardening)
Шлюз работает непосредственно на хосте (не в Docker), но sandbox-контейнеры агентов используют Docker для изоляции. Подробнее — Песочница.
Настройка после установки
После завершения установки переключитесь на пользователя openclaw:
sudo -i -u openclaw
Скрипт пост-установки поможет пройти следующие шаги:
- Мастер настройки: конфигурация параметров OpenClaw
- Подключение провайдеров: WhatsApp/Telegram/Discord/Signal
- Тестирование шлюза: проверка работоспособности
- Настройка Tailscale: подключение к VPN-сети
Полезные команды
# Проверить статус сервиса
sudo systemctl status openclaw
# Просмотр логов в реальном времени
sudo journalctl -u openclaw -f
# Перезапуск шлюза
sudo systemctl restart openclaw
# Авторизация провайдера (от имени пользователя openclaw)
sudo -i -u openclaw
openclaw channels login
Архитектура безопасности
4 уровня защиты
- Файрвол (UFW): публично доступны только SSH (22) + Tailscale (41641/udp)
- VPN (Tailscale): шлюз доступен только через VPN-сеть
- Изоляция Docker: цепочка DOCKER-USER в iptables блокирует внешний доступ к портам
- Hardening systemd: NoNewPrivileges, PrivateTmp, непривилегированный пользователь
Проверка
Тест внешней поверхности атаки:
nmap -p- YOUR_SERVER_IP
Должен показать только порт 22 (SSH). Все остальные сервисы (шлюз, Docker) заблокированы.
Docker
Docker установлен для sandbox-контейнеров агентов (изолированное выполнение инструментов), а не для запуска самого шлюза. Шлюз привязан только к localhost и доступен через Tailscale VPN.
Подробнее — Multi-Agent Sandbox & Tools.
Ручная установка
Если предпочитаете ручной контроль вместо автоматизации:
# 1. Установить зависимости
sudo apt update && sudo apt install -y ansible git
# 2. Клонировать репозиторий
git clone https://github.com/openclaw/openclaw-ansible.git
cd openclaw-ansible
# 3. Установить Ansible-коллекции
ansible-galaxy collection install -r requirements.yml
# 4. Запустить плейбук
./run-playbook.sh
# Или запустите напрямую (а потом вручную выполните /tmp/openclaw-setup.sh)
# ansible-playbook playbook.yml --ask-become-pass
Обновление OpenClaw
Установщик Ansible настраивает OpenClaw для ручного обновления. Стандартный процесс обновления описан в разделе Обновление.
Для повторного запуска плейбука (например, при изменении конфигурации):
cd openclaw-ansible
./run-playbook.sh
Команда идемпотентна и безопасна для многократного запуска.
Решение проблем
Файрвол блокирует соединение
Если потеряли доступ:
- Убедитесь, что можете подключиться через Tailscale VPN
- SSH-доступ (порт 22) всегда разрешён
- Шлюз доступен только через Tailscale — так задумано
Сервис не запускается
# Проверить логи
sudo journalctl -u openclaw -n 100
# Проверить права доступа
sudo ls -la /opt/openclaw
# Запустить вручную для диагностики
sudo -i -u openclaw
cd ~/openclaw
pnpm start
Проблемы с Docker-sandbox
# Проверить, что Docker запущен
sudo systemctl status docker
# Проверить образ sandbox
sudo docker images | grep openclaw-sandbox
# Собрать образ, если отсутствует
cd /opt/openclaw/openclaw
sudo -u openclaw ./scripts/sandbox-setup.sh
Не удаётся авторизовать провайдера
Убедитесь, что выполняете команду от имени пользователя openclaw:
sudo -i -u openclaw
openclaw channels login
Дополнительная настройка
Подробнее об архитектуре безопасности и решении проблем:
Связанные материалы
- openclaw-ansible — полное руководство по развёртыванию
- Docker — контейнерная установка шлюза
- Sandboxing — настройка песочницы агентов
- Multi-Agent Sandbox & Tools — изоляция агентов