Перейти к содержанию

Обзор развертывания OpenClaw на сервере

Предварительные требования и базовые условия

Для развертывания OpenClaw требуется операционная система на базе Linux, в частности Ubuntu, чтобы обеспечить совместимость со скриптами установки и менеджерами пакетов. Перед началом установки должны быть выполнены следующие требования:

  • Операционная система: Ubuntu (конкретная версия в источнике не указана, но требуется менеджер пакетов apt).

  • Привилегии: Для установки системных пакетов, управления службами и конфигурации пользователя openclaw обязательны права root или привилегии sudo.

  • Необходимые пакеты: Установщик автоматически проверяет наличие ansible и git.

  • Сетевой доступ: Сервер должен иметь исходящий доступ в интернет для клонирования репозитория с GitHub и загрузки коллекций Ansible.

Структура файлов и каталогов

Приложение OpenClaw и инструменты его управления устанавливаются в определенную структуру каталогов на сервере. Основные каталоги установки и связанные пути следующие:

  • Каталог установки: /opt/openclaw-ansible

  • Источник репозитория: https://github.com/openclaw/openclaw-ansible.git

  • Ветка: main

  • Скрипт выполнения: /opt/openclaw-ansible/run-playbook.sh

  • Домашний каталог пользователя: /home/openclaw

Процесс установки приложения

Приложение развертывается с помощью автоматизированного скрипта установщика, расположенного в клонированном репозитории. Процесс включает клонирование репозитория, установку зависимостей и выполнение основного плейбука.

  1. Клонирование репозитория: Система клонирует репозиторий OpenClaw с https://github.com/openclaw/openclaw-ansible.git в /opt/openclaw-ansible, выбирая ветку main.

  2. Установка зависимостей: Установщик обеспечивает наличие ansible и git через apt. Затем он устанавливает необходимые коллекции Ansible с помощью ansible-galaxy.

  3. Подготовка системы: Установщик останавливает автоматические обновления и ожидает освобождения менеджеров пакетов (apt, dpkg), чтобы предотвратить конфликты во время установки.

  4. Выполнение: Установка инициируется запуском скрипта ./run-playbook.sh из каталога /opt/openclaw-ansible.

    • Скрипт выполняется с использованием следующих переменных окружения:

      • NODE_OPTIONS: --max-old-space-size=768

      • npm_config_jobs: 2

      • npm_config_loglevel: warn

      • CI: true

    • Установщик включает механизм повторных попыток (3 попытки с задержкой 30 секунд) для обеспечения успешного завершения.

Права доступа и безопасность

В процессе развертывания создается выделенный системный пользователь для управления приложением, которому назначаются определенные права групп.

  • Учетная запись пользователя: Создается пользователь с именем openclaw со следующими атрибутами:

    • Оболочка (Shell): /bin/bash

    • Пароль: Установлен как openclaw (хэширован с использованием sha512).

    • Группы: Добавлен в группу sudo для выполнения административных действий.

  • Владение каталогами: Домашний каталог /home/openclaw рекурсивно принадлежит пользователю и группе openclaw.

  • Права на скрипты: Скрипту выполнения run-playbook.sh предоставлены права на выполнение для пользователя.

Настройки разрешений

Разрешения на файлы и каталоги настроены таким образом, чтобы пользователь openclaw имел полный контроль над своей средой.

  • Домашний каталог: Путь /home/openclaw и все его содержимое принадлежат openclaw:openclaw с применением рекурсивных разрешений.

  • Скрипт установщика: Для файла /opt/openclaw-ansible/run-playbook.sh установлен бит выполнения для пользователя (chmod u+x).

Запуск, остановка и обновление

Основной метод управления установкой OpenClaw осуществляется через предоставленный скрипт плейбука.

  • Команда установки/обновления:

    cd /opt/openclaw-ansible
    ./run-playbook.sh
    

  • Переменные окружения: При запуске скрипта установщик использует следующие переменные окружения:

    export NODE_OPTIONS="--max-old-space-size=768"
    export npm_config_jobs="2"
    export npm_config_loglevel="warn"
    export CI="true"
    

  • Управление службами: Установщик взаимодействует с системным менеджером пакетов и управлением службами (systemctl) для управления unattended-upgrades, временно отключая их во время установки и включая обратно после завершения.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×