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 (облако). |
OpenClaw — не 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 на другом хосте или облако) |
Конфликты пакетов
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 |
Параллельных запросов на модель |
OLLAMA_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 (для закрытого контура)¶
- На машине с интернетом экспортируйте модель в архив:
bash ./scripts/export-ollama-model.sh qwen3:1.7b # → docker/payload/models/qwen3-1.7b.tar.gz - Перенесите
.tar.gzна Master. - В UI: Администрирование → AI-ассистент → «Модели Ollama» → «Загрузить архив .tar.gz».
- Загрузка идёт чанками (8 МБ), затем модель импортируется на указанный endpoint Ollama. Прогресс виден в блоке статуса.
Скрипт 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 URL —
http://<хост-openclaw>:18789. - Gateway Token — из
openclaw.env(OPENCLAW_GATEWAY_TOKEN). - Machine-токен API — выпускается кнопкой «Выпустить токен» (показывается один раз, есть «Копировать»), отзывается кнопкой «Отозвать».
Статистика и обратная связь¶
В разделе «Статистика использования» — таблица: Фича / Провайдер / Всего запросов / 👍 / 👎. Обратная связь помогает оценивать качество ответов.
Что даёт AI-ассистент¶
| Фича | Где | Что делает |
|---|---|---|
| Ежедневный дайджест | Дашборд | Сводка состояния парка: проблемные хосты, зависшие кампании, аномалии |
| Разбор прогона | Конфигурации → детали прогона | Анализ неудачного/успешного прогона Ansible, рекомендации |
| Черновик плейбука | Конфигурации → редактор плейбука | Генерация черновика Ansible-playbook по описанию задачи |
| Диагностика хоста | Карточка хоста | Анализ состояния хоста, возможные проблемы |
Зависимость от Конфигураций
Часть 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}.
Связанные страницы¶
- Справочник портов и переменных — полная таблица портов (включая 11434, 18789).
- Docker и образы — карта всех образов.
- Администрирование → AI-ассистент — раздел UI.
- Конфигурации — AI-разбор прогонов и черновики плейбуков.