← Назад к «AI-стек»

AI-стек LSUS (Ollama + OpenClaw)

AI-ассистент Master: ежедневный дайджест состояния парка, разбор прогонов конфигураций, черновики Ansible-плейбуков, диагностика хостов. Локальный inference (Ollama) + опциональный агентный слой (OpenClaw). AI-стек standalone — отдельные образы и пакеты со своим счётчиком версий AI_VERSION (не входит в LSUS_VERSION), разворачивается независимо от серверных ролей.

Полная таблица портов и образов — в Справочнике. Настройка провайдеров в UI — Администрирование → AI-ассистент.

Архитектура

  Master (443)  ──── AI-ассистент (API /api/v1/ai)
      │
      ├─ провайдер Ollama ─── lsus-ollama (11434) ── модели в data/ai/ollama
      ├─ провайдер GigaChat ── облако (сертификат НУЦ)
      ├─ провайдер Yandex ──── облако (Folder ID + API-key)
      └─ OpenClaw (опционально) ── lsus-openclaw (18789) ── агентный слой/диспетчер

Компоненты

Компонент Образ Порт Назначение
Ollama lsus-ollama 11434 Локальный inference LLM. Модели загружаются через UI архивом .tar.gz или скриптом.
OpenClaw lsus-openclaw 18789 Gateway / агентный слой (опционален). Работает с локальным Ollama, внешним или облачным inference.
Провайдеры Master В UI выбирается LLM-провайдер: Ollama (локальный), GigaChat (облако, сертификат НУЦ), Yandex AI Studio (облако).

infoOpenClaw — не LLM-провайдер

OpenClaw — это агентный слой-диспетчер поверх inference, а не отдельный LLM. Он опционален: AI-ассистент Master может работать напрямую с Ollama/GigaChat/Yandex без OpenClaw. OpenClaw полезен для сложных агентных сценариев (многошаговые задачи, инструменты).

Сценарии установки

Сценарий Что ставится Когда нужен
Только Ollama lsus-image-ollama Минимум для AI-функций Master с локальным inference
Ollama + OpenClaw оба пакета на одном хосте Агентный слой поверх локального inference
Только OpenClaw lsus-image-openclaw Gateway над внешним/облачным inference (Ollama на другом хосте или облако)

infoКонфликты пакетов

AI-пакеты (lsus-image-ollama, lsus-image-openclaw) не конфликтуют между собой — порты 11434 и 18789 не пересекаются. Но оба конфликтуют с ролевыми пакетами (lsus-master, lsus-site, lsus-edge) — на одном хосте AI ставится отдельно от серверных ролей.

Установка

AI-стек ставится отдельно от серверных ролей, на том же или другом хосте. Версия читается из AI_VERSION (текущее значение 1.0.1).

Пакеты ОС

# Astra / Debian / Ubuntu (.deb)
sudo apt install ./lsus-image-ollama_1.0.1_all.deb
sudo apt install ./lsus-image-openclaw_1.0.1_all.deb   # опционально

# РЕД ОС / ALT (.rpm)
sudo dnf install ./lsus-image-ollama-1.0.1-1.noarch.rpm
sudo dnf install ./lsus-image-openclaw-1.0.1-1.noarch.rpm   # опционально

При установке пакет:
1. загружает образ (docker load);
2. создаёт ollama.env / openclaw.env из примеров (chmod 600);
3. запускает контейнер через соответствующий compose-файл.

Через установочный скрипт

# Только Ollama
bash demo-infra/scripts/install-lsus-docker-rpm.sh ollama

# Ollama + OpenClaw
LSUS_MASTER_URL=https://master.example.com \
  bash demo-infra/scripts/install-lsus-docker-rpm.sh ai-all

Через docker compose вручную

# Ollama
docker compose -f docker-compose.ollama.yml --env-file ollama.env --profile ollama up -d

# OpenClaw (после ollama, если локальный inference)
docker compose -f docker-compose.openclaw.yml --env-file openclaw.env --profile openclaw up -d

GPU-ускорение (NVIDIA)

Для Ollama на GPU нужен nvidia-container-toolkit и override-файл:

docker compose -f docker-compose.ollama.yml -f docker-compose.gpu.yml \
  --env-file ollama.env --profile ollama up -d

docker-compose.gpu.yml добавляет deploy.resources.reservations.devices с драйвером nvidia.

Конфигурация

Файлы .env создаются при установке пакета из примеров (ollama.env.example, openclaw.env.example) в каталоге /opt/lsus-docker/.

ollama.env

Переменная По умолчанию Назначение
OLLAMA_VERSION 1.0.1 Тег образа (из AI_VERSION)
OLLAMA_HOST 0.0.0.0:11434 Адрес/порт прослушивания
OLLAMA_ORIGINS * Разрешённые CORS-origins
OLLAMA_MAX_LOADED_MODELS 2 Максимум одновременно загруженных моделей в RAM
OLLAMA_NUM_PARALLEL 2 Параллельных запросов на модель

warningOLLAMA_HOST=0.0.0.0

Дефолт standalone-пакета — 0.0.0.0:11434 (слушает все интерфейсы), чтобы Master мог подключаться с другого хоста. Если Ollama и Master на одном хосте и не нужен внешний доступ — ограничьте до 127.0.0.1:11434 в ollama.env.

openclaw.env

Переменная По умолчанию Назначение
OPENCLAW_VERSION 1.0.1 Тег образа
OPENCLAW_GATEWAY_PORT 18789 Порт Gateway
OPENCLAW_GATEWAY_TOKEN (генерируется) Токен Gateway; создаётся при первой установке (openssl rand -hex 24)
OPENCLAW_OLLAMA_BASE_URL http://127.0.0.1:11434 URL Ollama (локальный или удалённый)
OPENCLAW_BIND lan Область привязки
LSUS_API_URL https://localhost:8443 URL Master для интеграции
LSUS_MACHINE_TOKEN Machine-токен API Master (выпускается в UI)

Каталоги данных

/opt/lsus-docker/data/ai/
├── ollama/              # модели и состояние Ollama
└── openclaw/            # workspace и конфигурация OpenClaw (uid 1000)
    └── workspace/

Импорт моделей

LLM-модели не входят в дистрибутив LSUS — их нужно загрузить отдельно. Способ зависит от того, где есть интернет.

Через UI Master (для закрытого контура)

  1. На машине с интернетом экспортируйте модель в архив:
    bash ./scripts/export-ollama-model.sh qwen3:1.7b # → docker/payload/models/qwen3-1.7b.tar.gz
  2. Перенесите .tar.gz на Master.
  3. В UI: Администрирование → AI-ассистент → «Модели Ollama» → «Загрузить архив .tar.gz».
  4. Загрузка идёт чанками (8 МБ), затем модель импортируется на указанный endpoint Ollama. Прогресс виден в блоке статуса.

lightbulbСкрипт export-ollama-model.sh

wzxhzdk:6

Скрипт использует запущенный контейнер lsus-ollama (или временный из образа), делает ollama pull <tag>, собирает manifest + blobs в .tar.gz.

Напрямую через Ollama (если есть интернет)

Если у хоста Ollama есть доступ в интернет, модель можно pulls напрямую:

docker exec lsus-ollama ollama pull qwen3:1.7b

Настройка в Master

После установки AI-стека настройте провайдера в Master: Администрирование → AI-ассистент (право ai.settings.manage).

Параметры модуля

  • «Включить AI-ассистент» — общий переключатель.
  • «LLM-провайдер» — Ollama / GigaChat / Yandex AI Studio.
  • «Потоков runner'а очереди» — параллелизм обработки AI-задач.
  • «Ежедневный дайджест» — сводка состояния парка на дашборде и/или в отчёте.
  • Кнопка «Проверить подключение» — healthcheck активного провайдера.

Ollama

  • Endpoints (по одному на строку) — поддержка round-robin и выбора least-busy через /api/ps.
  • Основная модель (main) — например, qwen3:8b.
  • Лёгкая модель (light, опционально) — например, qwen3:1.7b для простых задач.
  • API-Key (опционально).
  • Таймаут main/light, сек180 / 60.
  • keep_alive — удержание модели в RAM (-1m = бесконечно, 5m, 24h, 0 = выгружать сразу).

GigaChat

  • Client ID, Client Secret, Scope (GIGACHAT_API_PERS / _B2B / _CORP).
  • Модель (GigaChat).
  • Путь к сертификату НУЦ Минцифры — обязательно для работы в российском контуре.

Yandex AI Studio

  • Folder ID, API-Key.
  • Основная/лёгкая модель (gpt://...).

Агентный слой OpenClaw (опционально)

  • «Использовать OpenClaw как диспетчер» — переключение на агентный слой.
  • Base URLhttp://<хост-openclaw>:18789.
  • Gateway Token — из openclaw.env (OPENCLAW_GATEWAY_TOKEN).
  • Machine-токен API — выпускается кнопкой «Выпустить токен» (показывается один раз, есть «Копировать»), отзывается кнопкой «Отозвать».

Статистика и обратная связь

В разделе «Статистика использования» — таблица: Фича / Провайдер / Всего запросов / 👍 / 👎. Обратная связь помогает оценивать качество ответов.

Что даёт AI-ассистент

Фича Где Что делает
Ежедневный дайджест Дашборд Сводка состояния парка: проблемные хосты, зависшие кампании, аномалии
Разбор прогона Конфигурации → детали прогона Анализ неудачного/успешного прогона Ansible, рекомендации
Черновик плейбука Конфигурации → редактор плейбука Генерация черновика Ansible-playbook по описанию задачи
Диагностика хоста Карточка хоста Анализ состояния хоста, возможные проблемы

infoЗависимость от Конфигураций

Часть AI-функций (разбор прогонов, черновики плейбуков) работает в связке с вкладкой Конфигурации и требует установленного на клиенты lsus-config-agent. AI можно выключить независимо через LSUS_CONFIG_AI_ASSISTANT_ENABLED.

Сборка AI-образов (для разработчиков)

AI-образы собираются отдельно от core-образов (нужен интернет для docker pull):

# Только AI (Ollama + OpenClaw)
sudo OLLAMA_VERSION=0.31.1 bash docker/build-images.sh --ai

# Полная сборка (core + AI)
sudo bash docker/build-images.sh --all

Или через единый скрипт:

sudo bash scripts/build-full-distribution.sh --all

OLLAMA_VERSION (по умолчанию 0.31.1) — версия базового образа ollama/ollama. OPENCLAW_VERSION (по умолчанию latest) — версия openclaw/openclaw. Тег LSUS для обоих — ${AI_VERSION}.

Связанные страницы