Delete directory 'knowledge-base'
This commit is contained in:
@@ -1,49 +0,0 @@
|
|||||||
# База знаний Open WebUI
|
|
||||||
|
|
||||||
Данная база знаний создана для использования в Open WebUI (v0.10.2) и содержит документацию по инструментам управления инфраструктурой, конфигурационные сведения и чаты.
|
|
||||||
|
|
||||||
## Структура
|
|
||||||
|
|
||||||
- `tools/` — документация по инструментам для Proxmox VE и TrueNAS
|
|
||||||
- `configuration/` — конфигурация и настройки Open WebUI и связанных систем
|
|
||||||
- `chats/` — экспортированные чаты (заполняется пользователем)
|
|
||||||
|
|
||||||
## Инструменты
|
|
||||||
|
|
||||||
База знаний включает следующие инструменты:
|
|
||||||
|
|
||||||
### Proxmox Tools (Kybinka)
|
|
||||||
- Управление LXC-контейнерами (создание, запуск, остановка, удаление)
|
|
||||||
- Управление VM (клонирование из шаблона, создание из ISO)
|
|
||||||
- Мониторинг (ноды, хранилище, ресурсы, задачи)
|
|
||||||
|
|
||||||
### Proxmox Tools (PVE1)
|
|
||||||
- Аналогичный набор инструментов для сервера PVE1 (192.168.31.4)
|
|
||||||
|
|
||||||
### TrueNAS Tools
|
|
||||||
- Мониторинг системы, пулов ZFS, дисков
|
|
||||||
- Управление приложениями (Apps), VM, контейнерами
|
|
||||||
- Просмотр алертов
|
|
||||||
|
|
||||||
## Использование в Open WebUI
|
|
||||||
|
|
||||||
Для импорта в Open WebUI:
|
|
||||||
1. Откройте админ-панель → Knowledge → Create Collection
|
|
||||||
2. Загрузите файлы из папок `tools/` и `configuration/`
|
|
||||||
3. Для чатов: экспортируйте их из Open WebUI и поместите в папку `chats/`
|
|
||||||
|
|
||||||
## Конфигурация по умолчанию
|
|
||||||
|
|
||||||
### Proxmox Kybinka (192.168.31.2)
|
|
||||||
- Нода: `pve`
|
|
||||||
- Шаблон VM: VMID 1000
|
|
||||||
- Мост: `vmbr0`
|
|
||||||
|
|
||||||
### Proxmox PVE1 (192.168.31.4)
|
|
||||||
- Нода: `pve1`
|
|
||||||
- Шаблон VM: VMID 999
|
|
||||||
- Мост: `vmbr0`
|
|
||||||
|
|
||||||
### TrueNAS (192.168.31.100)
|
|
||||||
- URL: `http://192.168.31.100`
|
|
||||||
- Кэширование: 30 секунд
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
# Экспорт чатов из Open WebUI
|
|
||||||
|
|
||||||
## Способ 1: Экспорт через интерфейс (если доступно)
|
|
||||||
1. Откройте Open WebUI
|
|
||||||
2. Перейдите в чат
|
|
||||||
3. Найдите опцию "Экспорт" или "Export" (если доступна)
|
|
||||||
4. Сохраните чат в формате Markdown или JSON
|
|
||||||
5. Поместите файл в текущую папку `chats/`
|
|
||||||
|
|
||||||
## Способ 2: Экспорт через базу данных SQLite
|
|
||||||
|
|
||||||
Open WebUI хранит чаты в SQLite базе данных внутри контейнера.
|
|
||||||
|
|
||||||
### Шаг 1: Найдите путь к базе данных
|
|
||||||
В контейнере Open WebUI база обычно находится по пути:
|
|
||||||
- `/app/backend/data/webui.db`
|
|
||||||
- или `/data/webui.db`
|
|
||||||
|
|
||||||
### Шаг 2: Скопируйте базу данных из контейнера
|
|
||||||
```bash
|
|
||||||
docker cp ix-open-webui-open-webui-1:/app/backend/data/webui.db ./webui.db
|
|
||||||
```
|
|
||||||
|
|
||||||
### Шаг 3: Экспортируйте чаты
|
|
||||||
Используйте SQLite-клиент для экспорта таблиц `chat` и `message`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sqlite3 webui.db
|
|
||||||
```
|
|
||||||
```sql
|
|
||||||
.mode markdown
|
|
||||||
.output chats_export.md
|
|
||||||
SELECT * FROM chat;
|
|
||||||
.quit
|
|
||||||
```
|
|
||||||
|
|
||||||
Или используйте Python-скрипт:
|
|
||||||
|
|
||||||
```python
|
|
||||||
import sqlite3
|
|
||||||
import json
|
|
||||||
|
|
||||||
conn = sqlite3.connect('webui.db')
|
|
||||||
cursor = conn.cursor()
|
|
||||||
|
|
||||||
# Получить список чатов
|
|
||||||
cursor.execute("SELECT id, name, created_at FROM chat")
|
|
||||||
chats = cursor.fetchall()
|
|
||||||
|
|
||||||
for chat_id, chat_name, created_at in chats:
|
|
||||||
print(f"## Чат: {chat_name} (ID: {chat_id})")
|
|
||||||
|
|
||||||
# Получить сообщения чата
|
|
||||||
cursor.execute("SELECT role, content, created_at FROM message WHERE chat_id = ? ORDER BY created_at", (chat_id,))
|
|
||||||
messages = cursor.fetchall()
|
|
||||||
|
|
||||||
for role, content, msg_time in messages:
|
|
||||||
print(f"**{role}** ({msg_time}): {content}")
|
|
||||||
print("\n---\n")
|
|
||||||
|
|
||||||
conn.close()
|
|
||||||
```
|
|
||||||
|
|
||||||
## Способ 3: Использование API Open WebUI (если включён)
|
|
||||||
Open WebUI имеет REST API для работы с чатами. Обратитесь к документации Open WebUI для получения токена авторизации.
|
|
||||||
|
|
||||||
## После экспорта
|
|
||||||
Поместите экспортированные чаты в папку `chats/` репозитория и загрузите их в базу знаний Open WebUI через интерфейс администратора.
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
# Конфигурация Open WebUI и инфраструктуры
|
|
||||||
|
|
||||||
## Open WebUI
|
|
||||||
- **Версия:** v0.10.2
|
|
||||||
- **Развёртывание:** Docker-контейнер в TrueNAS Apps
|
|
||||||
- **Имя контейнера:** `ix-open-webui-open-webui-1`
|
|
||||||
- **Доступ:** через интерфейс TrueNAS
|
|
||||||
|
|
||||||
## Интеграции
|
|
||||||
|
|
||||||
### Proxmox VE (Kybinka)
|
|
||||||
- **Хост:** 192.168.31.2:8006
|
|
||||||
- **Нода:** `pve`
|
|
||||||
- **Токен API:** `open-webui` (в Proxmox)
|
|
||||||
- **Инструменты:** `proxmox_tools.py`
|
|
||||||
|
|
||||||
### Proxmox VE (PVE1)
|
|
||||||
- **Хост:** 192.168.31.4:8006
|
|
||||||
- **Нода:** `pve1`
|
|
||||||
- **Токен API:** `open-webui` (в Proxmox)
|
|
||||||
- **Инструменты:** `proxmox_tools_pve1.py`
|
|
||||||
|
|
||||||
### TrueNAS (WTR PRO)
|
|
||||||
- **IP:** 192.168.31.100
|
|
||||||
- **URL:** `http://192.168.31.100`
|
|
||||||
- **Модель:** WTR PRO
|
|
||||||
- **Серийный №:** Default string
|
|
||||||
- **CPU:** AMD Ryzen 7 5825U with Radeon Graphics (8C/16T)
|
|
||||||
- **RAM:** 62 GiB DDR4
|
|
||||||
- **ОС:** TrueNAS Community Edition 25.10.5 (Goldeye)
|
|
||||||
- **Загрузка:** EFI
|
|
||||||
- **API:** REST API v2.0
|
|
||||||
- **Инструменты:** `truenas_tools.py`
|
|
||||||
|
|
||||||
## Сеть
|
|
||||||
- **Домен:** nasweb.ru (Gitea)
|
|
||||||
- **Open WebUI:** доступ через Docker, WebSocket из Docker недоступен (используется HTTP)
|
|
||||||
- **TrueNAS REST API:** HTTP, порт 80
|
|
||||||
|
|
||||||
## Хранилища TrueNAS
|
|
||||||
|
|
||||||
### Пools
|
|
||||||
| Имя | Тип | Диски | Занято |
|
|
||||||
|-----|-----|-------|--------|
|
|
||||||
| `tank` | Stripe? | 1x WD05PURX 465.8GB (sda) | 16.2% |
|
|
||||||
| `backup` | Stripe? | 1x WD20EFAX 2TB (sdb, 5400rpm) | 23.9% |
|
|
||||||
| `ssd` | Mirror | nvme0n1 (ADATA 1.9TB) + nvme2n1 (Samsung 2TB) | 8.0% |
|
|
||||||
| `video` | Stripe? | 1x WD05PURX 465.8GB (sda) | 0.45 TiB |
|
|
||||||
|
|
||||||
### Trim
|
|
||||||
- Включён на пуле `ssd`
|
|
||||||
|
|
||||||
### Дополнительные диски
|
|
||||||
- `nvme1n1` — CUSU CV3500M 512GB, свободен
|
|
||||||
|
|
||||||
## Репликации ZFS (все успешны)
|
|
||||||
- `tank/media` → `backup/media`
|
|
||||||
- `tank/nextcloud` → `backup/document`
|
|
||||||
- `tank/movies` → `backup/movies`
|
|
||||||
- `ssd/virtual` → `backup/virtual`
|
|
||||||
- `ssd/virtual-iso` → `backup/virtual-iso`
|
|
||||||
- `ssd/apps` → `backup/apps`
|
|
||||||
|
|
||||||
## Gitea
|
|
||||||
- **Домен:** gitea.nasweb.ru
|
|
||||||
- **Версия:** 1.27.0-rootless
|
|
||||||
- **Репозиторий open-webui:** https://gitea.nasweb.ru/host/open-webui
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
# Справочник команд Open WebUI
|
|
||||||
|
|
||||||
## Proxmox Kybinka (192.168.31.2)
|
|
||||||
|
|
||||||
| Команда | Функция | Пример |
|
|
||||||
|---------|---------|--------|
|
|
||||||
| Статус подключения | `connection()` | "Проверь подключение к Proxmox" |
|
|
||||||
| Список нод | `nodes()` | "Покажи ноды кластера" |
|
|
||||||
| Статус ноды | `node_status(node="pve")` | "Статус ноды pve" |
|
|
||||||
| Статус кластера | `cluster()` | "Статус кластера" |
|
|
||||||
| Ресурсы | `resources(ftype="lxc")` | "Покажи LXC" |
|
|
||||||
| Хранилища | `storage()` | "Покажи хранилища" |
|
|
||||||
| Задачи | `tasks(limit=5, node="pve")` | "Последние задачи на pve" |
|
|
||||||
| Список LXC | `lxc_list(node="pve")` | "Список LXC" |
|
|
||||||
| Детали LXC | `lxc_detail(vmid=100, node="pve")` | "Детали LXC 100" |
|
|
||||||
| Действие LXC | `lxc_action(vmid=100, action="start")` | "Запусти LXC 100" |
|
|
||||||
| Создать LXC | `lxc_create(vmid=200, hostname="test", ostemplate="local:vztmpl/...")` | "Создай LXC 200" |
|
|
||||||
| Список VM | `vm_list(node="pve")` | "Список VM" |
|
|
||||||
| Детали VM | `vm_detail(vmid=900, node="pve")` | "Детали VM 900" |
|
|
||||||
| Действие VM | `vm_action(vmid=900, action="start")` | "Запусти VM 900" |
|
|
||||||
| Клонировать VM | `vm_create_from_template(vmid=901, name="new-vm", template_vmid=1000)` | "Клонируй шаблон 1000 в VM 901" |
|
|
||||||
| Создать VM с ISO | `vm_create(vmid=902, name="debian", template_vmid=0, iso="local:iso/debian-12.iso")` | "Создай VM с ISO" |
|
|
||||||
|
|
||||||
## Proxmox PVE1 (192.168.31.4)
|
|
||||||
|
|
||||||
| Команда | Функция | Пример |
|
|
||||||
|---------|---------|--------|
|
|
||||||
| Статус подключения | `pve1_connection()` | "Проверь PVE1" |
|
|
||||||
| Список нод | `pve1_nodes()` | "Ноды PVE1" |
|
|
||||||
| Статус ноды | `pve1_node_status(node="pve1")` | "Статус pve1" |
|
|
||||||
| Статус кластера | `pve1_cluster()` | "Кластер PVE1" |
|
|
||||||
| Ресурсы | `pve1_resources(ftype="qemu")` | "VM на PVE1" |
|
|
||||||
| Хранилища | `pve1_storage()` | "Хранилища PVE1" |
|
|
||||||
| Задачи | `pve1_tasks(limit=5)` | "Задачи PVE1" |
|
|
||||||
| Список LXC | `pve1_lxc_list(node="pve1")` | "LXC на PVE1" |
|
|
||||||
| Детали LXC | `pve1_lxc_detail(vmid=100)` | "LXC 100 детали" |
|
|
||||||
| Действие LXC | `pve1_lxc_action(vmid=100, action="stop")` | "Останови LXC 100" |
|
|
||||||
| Создать LXC | `pve1_lxc_create(vmid=200, hostname="test", ostemplate="local:vztmpl/...")` | "Создай LXC на PVE1" |
|
|
||||||
| Список VM | `pve1_vm_list(node="pve1")` | "VM на PVE1" |
|
|
||||||
| Детали VM | `pve1_vm_detail(vmid=900)` | "VM 900 детали" |
|
|
||||||
| Действие VM | `pve1_vm_action(vmid=900, action="reboot")` | "Перезагрузи VM 900" |
|
|
||||||
| Клонировать VM | `pve1_vm_create_from_template(vmid=901, name="new-vm", template_vmid=999)` | "Клонируй шаблон 999" |
|
|
||||||
|
|
||||||
## TrueNAS (192.168.31.100)
|
|
||||||
|
|
||||||
| Команда | Функция | Пример |
|
|
||||||
|---------|---------|--------|
|
|
||||||
| Диагностика | `get_debug_info()` | "Диагностика TrueNAS" |
|
|
||||||
| Очистка кэша | `clear_cache()` | "Очисти кэш" |
|
|
||||||
| Статус системы | `get_system_status()` | "Статус системы" |
|
|
||||||
| Пулы ZFS | `get_pools_status()` | "Покажи пулы" |
|
|
||||||
| Диски | `get_disks_temp_and_info()` | "Покажи диски" |
|
|
||||||
| Приложения | `get_apps_status()` | "Статус приложений" |
|
|
||||||
| VM | `get_vms_status()` | "Виртуальные машины" |
|
|
||||||
| Контейнеры | `get_containers_status()` | "Контейнеры" |
|
|
||||||
| Алерты | `get_active_alerts()` | "Активные алерты" |
|
|
||||||
| Полный отчёт | `get_full_report()` | "Полный отчёт TrueNAS" |
|
|
||||||
|
|
||||||
## Полезные параметры
|
|
||||||
|
|
||||||
### Создание LXC
|
|
||||||
- **unpriv:** `true` — непривилегированный контейнер (рекомендуется)
|
|
||||||
- **start_now:** `true` — запустить после создания
|
|
||||||
- **wait:** `true` — дождаться завершения задачи
|
|
||||||
|
|
||||||
### Создание VM (клон)
|
|
||||||
- **full:** `true` — полный клон (медленно, но независимый)
|
|
||||||
- **full:** `false` — связанный клон (быстро, зависит от шаблона)
|
|
||||||
- **agent:** `1` — включить QEMU guest agent
|
|
||||||
|
|
||||||
### Cloud-init
|
|
||||||
Для VM из шаблона с cloud-init:
|
|
||||||
- `ciuser="ubuntu"` — пользователь
|
|
||||||
- `cipassword="password"` — пароль
|
|
||||||
- `sshkeys="ssh-rsa ..."` — SSH ключи
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
# Proxmox Tools (Kybinka)
|
|
||||||
|
|
||||||
## Описание
|
|
||||||
Инструменты для управления Proxmox VE на сервере Kybinka (192.168.31.2:8006).
|
|
||||||
|
|
||||||
## Настройки по умолчанию
|
|
||||||
- **Proxmox host:** `https://192.168.31.2:8006`
|
|
||||||
- **Пользователь API:** `root@pam`
|
|
||||||
- **Нода по умолчанию:** `pve`
|
|
||||||
- **Хранилище по умолчанию:** `local`
|
|
||||||
- **Мост по умолчанию:** `vmbr0`
|
|
||||||
- **VMID шаблона:** 1000
|
|
||||||
- **Таймаут запросов:** 30 секунд
|
|
||||||
|
|
||||||
## Доступные функции
|
|
||||||
|
|
||||||
### connection()
|
|
||||||
Проверка подключения к API Proxmox VE.
|
|
||||||
|
|
||||||
**Возвращает:** `OK Proxmox VE X.Y.Z | node: pve | host: https://192.168.31.2:8006` или `ERR <описание ошибки>`
|
|
||||||
|
|
||||||
### nodes()
|
|
||||||
Список всех нод кластера с загрузкой CPU/RAM и аптаймом.
|
|
||||||
|
|
||||||
**Возвращает:** список нод со статусом, CPU, RAM, аптаймом.
|
|
||||||
|
|
||||||
### node_status(node=None)
|
|
||||||
Подробный статус ноды: модель CPU, нагрузка, RAM, swap, диск, аптайм, ядро и версия PVE.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `node` — имя ноды (по умолчанию: `pve`)
|
|
||||||
|
|
||||||
### cluster()
|
|
||||||
Статус кластера: кворум и участники.
|
|
||||||
|
|
||||||
### resources(ftype="")
|
|
||||||
Список всех ресурсов кластера (ноды, QEMU VM, LXC, хранилища).
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `ftype` — фильтр по типу: `"node"`, `"qemu"`, `"lxc"`, `"storage"` (пусто = все)
|
|
||||||
|
|
||||||
### storage()
|
|
||||||
Список всех настроенных хранилищ с типами контента и занятостью.
|
|
||||||
|
|
||||||
### tasks(limit=10, node=None)
|
|
||||||
Последние задачи на ноде.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `limit` — максимальное количество задач
|
|
||||||
- `node` — имя ноды (по умолчанию: `pve`)
|
|
||||||
|
|
||||||
### lxc_list(node=None)
|
|
||||||
Список LXC-контейнеров на ноде.
|
|
||||||
|
|
||||||
### lxc_detail(vmid, node=None)
|
|
||||||
Подробная информация о LXC-контейнере: ОС, CPU, RAM, диск, сеть, использование и аптайм.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `vmid` — числовой ID контейнера
|
|
||||||
- `node` — имя ноды (по умолчанию: `pve`)
|
|
||||||
|
|
||||||
### lxc_action(vmid, action, node=None)
|
|
||||||
Управление жизненным циклом LXC.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `vmid` — ID контейнера
|
|
||||||
- `action` — одно из: `"start"`, `"stop"`, `"shutdown"`, `"restart"`, `"suspend"`, `"resume"`, `"delete"`
|
|
||||||
- `node` — имя ноды (по умолчанию: `pve`)
|
|
||||||
|
|
||||||
### templates(storage=None, node=None)
|
|
||||||
Список доступных шаблонов LXC в хранилище.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `storage` — имя хранилища (по умолчанию: `local`)
|
|
||||||
- `node` — имя ноды (по умолчанию: `pve`)
|
|
||||||
|
|
||||||
### lxc_create(...)
|
|
||||||
Создание нового LXC-контейнера из шаблона.
|
|
||||||
|
|
||||||
**Основные аргументы:**
|
|
||||||
- `vmid` — новый ID (не должен существовать)
|
|
||||||
- `hostname` — имя хоста
|
|
||||||
- `ostemplate` — ID шаблона, например `"local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst"`
|
|
||||||
- `password` — пароль root (обязателен если нет sshkey)
|
|
||||||
- `sshkey` — публичный SSH-ключ (обязателен если нет password)
|
|
||||||
- `cores` — количество ядер (по умолчанию: 1)
|
|
||||||
- `memory` — RAM в МБ (по умолчанию: 512)
|
|
||||||
- `disk` — размер диска, например `"8G"` (по умолчанию: `"8G"`)
|
|
||||||
- `ip` — IP-адрес или `"dhcp"` (по умолчанию: `"dhcp"`)
|
|
||||||
- `netmask` — префикс маски (по умолчанию: 24)
|
|
||||||
- `gw` — шлюз
|
|
||||||
- `start_now` — запустить сразу (по умолчанию: `true`)
|
|
||||||
|
|
||||||
### vm_list(node=None)
|
|
||||||
Список QEMU VM на ноде.
|
|
||||||
|
|
||||||
### vm_detail(vmid, node=None)
|
|
||||||
Подробный статус VM.
|
|
||||||
|
|
||||||
### vm_action(vmid, action, node=None)
|
|
||||||
Управление жизненным циклом VM.
|
|
||||||
|
|
||||||
### vm_create_from_template(...)
|
|
||||||
Создание VM клонированием из шаблона (cloud-init).
|
|
||||||
|
|
||||||
**Основные аргументы:**
|
|
||||||
- `vmid` — новый ID
|
|
||||||
- `name` — имя VM
|
|
||||||
- `template_vmid` — VMID шаблона (по умолчанию: 1000)
|
|
||||||
- `full` — полный клон (`true`) или связанный (`false`)
|
|
||||||
- `memory` — RAM в МБ
|
|
||||||
- `cores` — ядра CPU
|
|
||||||
- `ciuser` — пользователь cloud-init
|
|
||||||
- `cipassword` — пароль cloud-init
|
|
||||||
- `sshkeys` — SSH-ключи (через новую строку)
|
|
||||||
|
|
||||||
### vm_create(...)
|
|
||||||
Создание VM (два режима: клон из шаблона или создание с ISO).
|
|
||||||
|
|
||||||
**Режим 1 (клонирование):**
|
|
||||||
- `template_vmid` — VMID шаблона (по умолчанию: 1000)
|
|
||||||
|
|
||||||
**Режим 2 (ISO):**
|
|
||||||
- `template_vmid=0`
|
|
||||||
- `iso` — ID ISO, например `"local:iso/debian-12.iso"`
|
|
||||||
- `ostype` — тип ОС, например `"l26"`
|
|
||||||
- `agent` — включить QEMU guest agent (1/0)
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
# Proxmox Tools (PVE1)
|
|
||||||
|
|
||||||
## Описание
|
|
||||||
Инструменты для управления Proxmox VE на сервере PVE1 (192.168.31.4:8006).
|
|
||||||
|
|
||||||
## Настройки по умолчанию
|
|
||||||
- **Proxmox host:** `https://192.168.31.4:8006`
|
|
||||||
- **Пользователь API:** `root@pam`
|
|
||||||
- **Нода по умолчанию:** `pve1`
|
|
||||||
- **Хранилище по умолчанию:** `local`
|
|
||||||
- **Мост по умолчанию:** `vmbr0`
|
|
||||||
- **Таймаут запросов:** 30 секунд
|
|
||||||
|
|
||||||
## Доступные функции
|
|
||||||
|
|
||||||
### pve1_connection()
|
|
||||||
Проверка подключения к API Proxmox VE (PVE1).
|
|
||||||
|
|
||||||
**Возвращает:** `OK Proxmox VE X.Y.Z | node: pve1 | host: https://192.168.31.4:8006`
|
|
||||||
|
|
||||||
### pve1_nodes()
|
|
||||||
Список всех нод кластера с загрузкой CPU/RAM и аптаймом.
|
|
||||||
|
|
||||||
### pve1_node_status(node=None)
|
|
||||||
Подробный статус ноды: модель CPU, нагрузка, RAM, swap, диск, аптайм, ядро и версия PVE.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `node` — имя ноды (по умолчанию: `pve1`)
|
|
||||||
|
|
||||||
### pve1_cluster()
|
|
||||||
Статус кластера: кворум и участники.
|
|
||||||
|
|
||||||
### pve1_resources(ftype="")
|
|
||||||
Список всех ресурсов кластера (ноды, QEMU VM, LXC, хранилища).
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `ftype` — фильтр: `"node"`, `"qemu"`, `"lxc"`, `"storage"` (пусто = все)
|
|
||||||
|
|
||||||
### pve1_storage()
|
|
||||||
Список всех настроенных хранилищ с типами контента и занятостью.
|
|
||||||
|
|
||||||
### pve1_tasks(limit=10, node=None)
|
|
||||||
Последние задачи на ноде.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `limit` — максимальное количество задач
|
|
||||||
- `node` — имя ноды (по умолчанию: `pve1`)
|
|
||||||
|
|
||||||
### pve1_lxc_list(node=None)
|
|
||||||
Список LXC-контейнеров на ноде.
|
|
||||||
|
|
||||||
### pve1_lxc_detail(vmid, node=None)
|
|
||||||
Подробная информация о LXC-контейнере: ОС, CPU, RAM, диск, сеть, использование и аптайм.
|
|
||||||
|
|
||||||
### pve1_lxc_action(vmid, action, node=None)
|
|
||||||
Управление жизненным циклом LXC.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `vmid` — ID контейнера
|
|
||||||
- `action` — одно из: `"start"`, `"stop"`, `"shutdown"`, `"restart"`, `"suspend"`, `"resume"`, `"delete"`
|
|
||||||
|
|
||||||
### pve1_templates(storage=None, node=None)
|
|
||||||
Список доступных шаблонов LXC в хранилище.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `storage` — имя хранилища (по умолчанию: `local`)
|
|
||||||
- `node` — имя ноды (по умолчанию: `pve1`)
|
|
||||||
|
|
||||||
### pve1_lxc_create(...)
|
|
||||||
Создание нового LXC-контейнера из шаблона.
|
|
||||||
|
|
||||||
**Основные аргументы:**
|
|
||||||
- `vmid` — новый ID (не должен существовать)
|
|
||||||
- `hostname` — имя хоста
|
|
||||||
- `ostemplate` — ID шаблона
|
|
||||||
- `password` / `sshkey` — аутентификация
|
|
||||||
- `cores` — ядра CPU (по умолчанию: 1)
|
|
||||||
- `memory` — RAM в МБ (по умолчанию: 512)
|
|
||||||
- `disk` — размер диска (по умолчанию: `"8G"`)
|
|
||||||
- `ip` — IP или `"dhcp"` (по умолчанию: `"dhcp"`)
|
|
||||||
- `netmask` — префикс маски (по умолчанию: 24)
|
|
||||||
- `start_now` — запустить сразу (по умолчанию: `true`)
|
|
||||||
|
|
||||||
### pve1_vm_list(node=None)
|
|
||||||
Список QEMU VM на ноде.
|
|
||||||
|
|
||||||
### pve1_vm_detail(vmid, node=None)
|
|
||||||
Подробный статус VM.
|
|
||||||
|
|
||||||
### pve1_vm_action(vmid, action, node=None)
|
|
||||||
Управление жизненным циклом VM.
|
|
||||||
|
|
||||||
**Аргументы:**
|
|
||||||
- `vmid` — ID VM
|
|
||||||
- `action` — одно из: `"start"`, `"stop"`, `"shutdown"`, `"restart"`, `"suspend"`, `"resume"`, `"delete"`
|
|
||||||
|
|
||||||
### pve1_vm_create_from_template(...)
|
|
||||||
Создание VM клонированием из шаблона (cloud-init).
|
|
||||||
|
|
||||||
**Основные аргументы:**
|
|
||||||
- `vmid` — новый ID
|
|
||||||
- `name` — имя VM
|
|
||||||
- `template_vmid` — VMID шаблона (по умолчанию: 999)
|
|
||||||
- `full` — полный (`true`) или связанный (`false`) клон
|
|
||||||
- `memory` — RAM в МБ
|
|
||||||
- `cores` — ядра CPU
|
|
||||||
- `storage` — целевое хранилище
|
|
||||||
- `target_node` — целевая нода (если отличается)
|
|
||||||
- `start_now` — запустить сразу
|
|
||||||
- `ciuser` / `cipassword` / `sshkeys` — cloud-init параметры
|
|
||||||
|
|
||||||
### pve1_vm_create(...)
|
|
||||||
Создание VM (клонирование из шаблона или создание с ISO).
|
|
||||||
|
|
||||||
**Режим 1 (клонирование):**
|
|
||||||
- `template_vmid` — VMID шаблона (по умолчанию: 999)
|
|
||||||
|
|
||||||
**Режим 2 (ISO):**
|
|
||||||
- `template_vmid=0`
|
|
||||||
- `iso` — ID ISO
|
|
||||||
- `ostype` — тип гостевой ОС (по умолчанию: `"l26"`)
|
|
||||||
- `agent` — QEMU guest agent (1/0)
|
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
# TrueNAS Tools
|
|
||||||
|
|
||||||
## Описание
|
|
||||||
Инструменты для мониторинга и управления TrueNAS (WTR PRO, 192.168.31.100) через REST API v2.0.
|
|
||||||
|
|
||||||
**Версия TrueNAS:** 25.10.5 (Goldeye)
|
|
||||||
|
|
||||||
## Настройки по умолчанию
|
|
||||||
- **TrueNAS URL:** `http://192.168.31.100`
|
|
||||||
- **API Key:** задаётся в настройках (Valves)
|
|
||||||
- **Кэширование:** 30 секунд (0 = без кэша)
|
|
||||||
|
|
||||||
## Особенности
|
|
||||||
- Автоматический перебор альтернативных путей API (v2.0)
|
|
||||||
- Кэширование запросов для снижения нагрузки
|
|
||||||
- Диагностика соединения (HTTP/HTTPS, SSL, таймауты)
|
|
||||||
|
|
||||||
## Доступные функции
|
|
||||||
|
|
||||||
### get_debug_info()
|
|
||||||
Диагностика соединения с TrueNAS: проверяет базовый URL, HTTP/HTTPS, код ответа и текст ошибки для system/info.
|
|
||||||
|
|
||||||
**Использование:** когда API 'недоступен' и нужно понять, на каком этапе рвётся запрос.
|
|
||||||
|
|
||||||
**Возвращает:** отчёт о проверке подключения, включая пробу HTTP/HTTPS вариантов.
|
|
||||||
|
|
||||||
### clear_cache()
|
|
||||||
Очистка кэша запросов.
|
|
||||||
|
|
||||||
### get_system_status()
|
|
||||||
Статус системы TrueNAS: версия, аптайм, процессор, load average.
|
|
||||||
|
|
||||||
**Возвращает:**
|
|
||||||
```
|
|
||||||
🖥️ TrueNAS: X.Y.Z
|
|
||||||
⏱️ Uptime: Xд Xч Xм
|
|
||||||
🔧 Процессор: <модель>
|
|
||||||
📊 Load Average: 1мин: X.XX, 5мин: X.XX, 15мин: X.XX
|
|
||||||
```
|
|
||||||
|
|
||||||
### get_pools_status()
|
|
||||||
Статус пулов ZFS.
|
|
||||||
|
|
||||||
**Возвращает:** список пулов с статусом, размером, процентом занятости.
|
|
||||||
- ✅ — пул здоров
|
|
||||||
- ⚠️ — проблемы с пулом
|
|
||||||
|
|
||||||
**Пример:**
|
|
||||||
```
|
|
||||||
✅ 'tank' | ONLINE | 0.45 TiB, 16.2% занято
|
|
||||||
✅ 'backup' | ONLINE | 1.81 TiB, 23.9% занято
|
|
||||||
```
|
|
||||||
|
|
||||||
### get_disks_temp_and_info()
|
|
||||||
Информация о дисках: тип, модель, серийный номер, размер.
|
|
||||||
|
|
||||||
**Возвращает:** список дисков с основными параметрами.
|
|
||||||
|
|
||||||
### get_apps_status()
|
|
||||||
Список установленных приложений (TrueNAS Apps, docker compose).
|
|
||||||
|
|
||||||
**Статусы:**
|
|
||||||
- 🟢 RUNNING
|
|
||||||
- ⚪ STOPPED
|
|
||||||
- 🟡 DEPLOYING
|
|
||||||
- 🔴 CRASHED
|
|
||||||
- 🟠 STOPPING
|
|
||||||
|
|
||||||
### get_vms_status()
|
|
||||||
Список виртуальных машин (libvirt/KVM).
|
|
||||||
|
|
||||||
**Возвращает:** имя, статус, vCPU, RAM, автозапуск.
|
|
||||||
|
|
||||||
### get_containers_status()
|
|
||||||
Лёгкие контейнеры / инстансы (incus/virt, LXC-подобные).
|
|
||||||
|
|
||||||
**Возвращает:** имя, тип, статус, образ.
|
|
||||||
|
|
||||||
### get_active_alerts()
|
|
||||||
Активные алерты системы.
|
|
||||||
|
|
||||||
**Уровни:**
|
|
||||||
- 🔴 CRITICAL
|
|
||||||
- 🟡 WARNING
|
|
||||||
- 🔵 INFO
|
|
||||||
|
|
||||||
**Возвращает:** `✅ Все системы работают штатно.` или список алертов.
|
|
||||||
|
|
||||||
### get_full_report()
|
|
||||||
Полный отчёт по всей системе TrueNAS.
|
|
||||||
|
|
||||||
**Включает:**
|
|
||||||
- Система (статус, аптайм, CPU, load)
|
|
||||||
- Пулы ZFS
|
|
||||||
- Диски
|
|
||||||
- Приложения
|
|
||||||
- Виртуальные машины
|
|
||||||
- Контейнеры
|
|
||||||
- Алерты
|
|
||||||
|
|
||||||
## Текущая конфигурация системы
|
|
||||||
|
|
||||||
### Пools
|
|
||||||
| Pool | Диски | Занято |
|
|
||||||
|------|-------|--------|
|
|
||||||
| `tank` | 1x WD05PURX 465.8GB (sda) | 16.2% |
|
|
||||||
| `backup` | 1x WD20EFAX 2TB (sdb) | 23.9% |
|
|
||||||
| `ssd` | mirror: nvme0n1 (ADATA 1.9TB) + nvme2n1 (Samsung 2TB) | 8.0% |
|
|
||||||
| `video` | 1x WD05PURX 465.8GB (sda) | 0.45 TiB |
|
|
||||||
|
|
||||||
### Дополнительные диски
|
|
||||||
- `nvme1n1` — CUSU CV3500M 512GB, свободен, не привязан к пулу
|
|
||||||
|
|
||||||
### Репликации (активные)
|
|
||||||
- `tank/media` → `backup/media`
|
|
||||||
- `tank/nextcloud` → `backup/document`
|
|
||||||
- `tank/movies` → `backup/movies`
|
|
||||||
- `ssd/virtual` → `backup/virtual`
|
|
||||||
- `ssd/virtual-iso` → `backup/virtual-iso`
|
|
||||||
- `ssd/apps` → `backup/apps`
|
|
||||||
|
|
||||||
Все репликации успешны.
|
|
||||||
Reference in New Issue
Block a user