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

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

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

Развертывание OpenClaw требует Linux-окружения с определенными зависимостями пакетов и правами пользователя. Система должна соответствовать следующим критериям:

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

  • Привилегии: Для установки системных пакетов и управления службами требуются права root или привилегии sudo.

  • Необходимые пакеты:

  • ansible

  • git

  • Учетная запись пользователя: Создается выделенный системный пользователь с именем openclaw, имеющий пароль и членство в группе sudo.

  • Управление пакетами: Установщик временно отключает unattended-upgrades, чтобы предотвратить конфликты в процессе установки, и повторно активирует его по завершении.

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

Приложение и его вспомогательные файлы организованы в конкретных директориях на хост-системе:

  • Директория установки: /opt/openclaw-ansible

  • Содержит клонированный репозиторий из https://github.com/openclaw/openclaw-ansible.git.

  • Включает скрипт выполнения run-playbook.sh.

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

  • Служит основной рабочей директорией для пользователя openclaw.

  • Содержит специфичные для пользователя конфигурации и переменные окружения.

  • Конфигурация окружения:

  • /home/openclaw/.profile: Настраивает переменную окружения PNPM_HOME и обновляет PATH.

  • /etc/environment: Обновляет системный PATH для включения бинарных файлов OpenClaw.

  • /etc/sudoers.d/openclaw-path: Настраивает secure_path и env_keep для пользователя openclaw, обеспечивая доступность бинарных файлов pnpm во время операций sudo.

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

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

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

  2. Установка зависимостей: Коллекции Ansible устанавливаются с помощью команды ansible-galaxy collection install -r requirements.yml.

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

  4. Команда: ./run-playbook.sh -e ansible_become=true

  5. Рабочая директория: /opt/openclaw-ansible

  6. Переменные окружения: Установщик работает с определенными ограничениями окружения для управления памятью и параллелизмом:

  7. NODE_OPTIONS: --max-old-space-size=768

  8. npm_config_jobs: 2

  9. npm_config_loglevel: warn

  10. CI: true

  11. PNPM_HOME: /home/openclaw/.local/share/pnpm

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

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

Конфигурации безопасности применяются к пользователю openclaw и системному окружению:

  • Создание пользователя: Пользователь openclaw создается с /bin/bash в качестве оболочки по умолчанию.

  • Членство в группе: Пользователь добавляется в группу sudo для выполнения административных задач.

  • Пароль: Для пользователя openclaw устанавливается пароль с использованием хеширования SHA512.

  • Конфигурация Sudo:

  • secure_path расширяется для включения /home/openclaw/.local/share/pnpm/bin и /home/openclaw/.local/bin.

  • Переменные окружения PNPM_HOME и PATH сохраняются во время выполнения sudo.

  • Блокировка менеджера пакетов: Установщик включает логику ожидания завершения или завершения процессов apt, apt-get, dpkg и unattended-upgrade перед продолжением, предотвращая конфликты блокировки файлов.

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

Разрешения на файлы и директории строго определены для обеспечения корректной работы приложения:

  • Домашняя директория: /home/openclaw принадлежит openclaw:openclaw с режимом 0755.

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

  • Файл профиля: /home/openclaw/.profile установлен в режим 0644 и принадлежит openclaw:openclaw.

  • Файл Sudoers: /etc/sudoers.d/openclaw-path установлен в режим 0440 и принадлежит root:root.

  • Файл окружения: /etc/environment установлен в режим 0644 и принадлежит root:root.

  • Скрипт выполнения: Скрипт run-playbook.sh получает права на выполнение для пользователя (chmod u+x).

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

Развертывание использует специальный скрипт для управления жизненным циклом установки и обновлений.

  • Команда обновления/запуска: Для выполнения развертывания или обновления приложения выполните следующую команду из директории установки:

    cd /opt/openclaw-ansible
    ./run-playbook.sh -e ansible_become=true
    

  • Контекст окружения: Скрипт зависит от окружения пользователя openclaw. Убедитесь, что PATH включает бинарные файлы pnpm, расположенные в /home/openclaw/.local/share/pnpm/bin.

  • После установки: После завершения установки служба unattended-upgrades повторно активируется для поддержания обновлений безопасности системы.

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