- kb_audit_helpers.py — общие функции parse_live/inventory/deleted - kb-audit-apply.py — применяет только structural факт-правки: * new VMID → добавить в "🔴 Остановленные" (только для stopped) * missing VMID → переместить в "🗑️ Удалённые" с датой - Коммитит как kb-audit-bot <kb-audit@dttb.ru> — фильтруемо в git log - Safety: live<5 хостов → abort - Не трогает описания/IP/назначения — только структурные поля из pct list Cron обновлён: audit → apply → propose (остаток для ручного ревью)
62 lines
2.9 KiB
Markdown
62 lines
2.9 KiB
Markdown
# scripts/ — инфра-скрипты vault
|
||
|
||
## kb-audit.py
|
||
Факт-детектор drift-а: сравнивает живой `pct list`/`qm list` с `projects/dttb/proxmox-inventory.md`.
|
||
Пишет отчёт в `audit/YYYY-MM-DD-drift.md`.
|
||
|
||
**Без LLM** — только факты. Галлюцинаций быть не может.
|
||
|
||
Запуск:
|
||
```bash
|
||
python3 scripts/kb-audit.py
|
||
```
|
||
|
||
## kb-audit-propose.sh
|
||
Запускается **после** kb-audit.py. Берёт свежий drift + текущий inventory → отправляет в `claude -p` (Opus 4.7 через Max).
|
||
Получает предложенные правки → `audit/YYYY-MM-DD-proposed.md`.
|
||
|
||
**Правки не применяются автоматом.** Ревью — ты, `git apply` — вручную.
|
||
|
||
Запуск:
|
||
```bash
|
||
bash scripts/kb-audit-propose.sh
|
||
```
|
||
|
||
## kb-audit-apply.py (karpathy-style уровень 3)
|
||
Автоматически применяет **безопасные** правки в `proxmox-inventory.md`:
|
||
- Новый LXC/VM в Proxmox → добавляется строка в таблицу «Остановленные» (только для stopped — running требует ручной секции с деталями)
|
||
- VMID отсутствует в pct/qm list → перемещается в секцию «🗑️ Удалённые» с сегодняшней датой
|
||
|
||
**Гарды:**
|
||
- Live-list < 5 хостов → abort (Proxmox возможно недоступен, не искалечим inventory)
|
||
- Коммит с автором `kb-audit-bot <kb-audit@dttb.ru>` — легко фильтровать в git log
|
||
- Трогает **только** `proxmox-inventory.md`, никогда описания/назначения
|
||
|
||
Запуск:
|
||
```bash
|
||
python3 scripts/kb-audit-apply.py
|
||
```
|
||
|
||
## Еженедельный cron (code-server LXC 132)
|
||
```cron
|
||
# воскресенье 06:00 — drift audit → safe auto-apply → Opus предложения оставшегося
|
||
0 6 * * 0 /usr/bin/python3 /root/knowledge-base/scripts/kb-audit.py && /usr/bin/python3 /root/knowledge-base/scripts/kb-audit-apply.py; /bin/bash /root/knowledge-base/scripts/kb-audit-propose.sh
|
||
```
|
||
|
||
## Архитектура
|
||
```
|
||
pct list / qm list (Proxmox)
|
||
↓
|
||
kb-audit.py — фактовый diff → audit/YYYY-MM-DD-drift.md
|
||
↓
|
||
kb-audit-apply.py — автоматически применяет safe-правки (новые VMID, missing → 🗑️)
|
||
↓ коммитит как kb-audit-bot
|
||
↓
|
||
kb-audit-propose.sh — Opus читает drift + свежий inventory, предлагает что осталось
|
||
↓ → audit/YYYY-MM-DD-proposed.md
|
||
↓
|
||
ты ревьюишь оставшееся (описания, IP, назначения), применяешь руками
|
||
↓
|
||
коммит → sync везде (через kb-autosync + File Provider + Nextcloud)
|
||
```
|