vrcx/README.ru.md
Engelgardt23 b923b9ebe7 vrcx: i18n (en/ru), config.ini, clickable update check, prettier README
Adds first-run language prompt + persistent config.ini with bilingual
inline comments. Update check now returns just the tag; app.py renders
it as a clickable [link=...] in the header (matches dhcpsrv/netswitch
pattern). Strips all 'made by engelgardt' lines.

- new dev/src/vrcx/i18n.py (RU/EN translation table)
- new dev/src/vrcx/config.py (config.ini next to the exe)
- update_check.py: returns tag, no console writes
- app.py: load config, set lang, render clickable header, use config
  defaults for BMC/SDS user and parallel_hosts; pass cfg.ping_sweep to
  discover_sds_ip
- ui.py: all visible strings via t()
- README.md / README.ru.md: rewritten under the vrcx name and brief
2026-05-18 17:57:29 +03:00

99 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vrcx
[![Последний релиз](https://img.shields.io/github/v/release/Engelgardt23/vrcx?include_prereleases&label=release)](https://github.com/Engelgardt23/vrcx/releases/latest)
[![Сборка](https://img.shields.io/github/actions/workflow/status/Engelgardt23/vrcx/release.yml?label=build)](https://github.com/Engelgardt23/vrcx/actions)
[![Лицензия: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Язык: en \| ru](https://img.shields.io/badge/lang-en%20%7C%20ru-blue)](#)
[🇺🇸 English](README.md) | 🇷🇺 Русский
**vrcx***Vegman Remote Collect (расширенный)*. Портативная замена штатного YADRO `VRC.exe`: вытаскивает диагностические логи с сервера Vegman **и**, по желанию, с сервисной ОС SDS — параллельно, в единый архив, готовый отправить в саппорт.
Штатный VRC ходит только в BMC. На реальных инцидентах саппорту почти всегда нужны ещё и логи с ОС (`lsiget`, `storcli`, `smartctl`, journal). С vrcx это **один двойной клик** вместо беготни с флешкой.
---
## Что делает
- Параллельно опрашивает **N BMC**. Внутри каждого хоста — ещё одна SSH-сессия в сервисную ОС SDS, обе ветки идут одновременно.
- IP SDS определяет сам: спрашивает у BMC по Redfish MAC хостового порта, ищет его в ARP-таблице ноутбука (предварительно прогревая её `/24`-пинг-свипом).
- Каждый хост получает свои подпапки `bmc/` и `os/`; готовые архивы складываются в общий `archives/`, а вся сессия упаковывается во внешний tar.gz одним кликом.
- Если `Собирать ещё и логи с ОС? — нет` — получается набор файлов 1:1 совместимый с маршрутом саппорта по штатному VRC.
## Скачать
Последний релиз: [**страница релизов**](https://github.com/Engelgardt23/vrcx/releases/latest).
Архив: `vrcx-portable-vX.Y.Z.zip`.
## Запуск
1. Распакуй куда угодно.
2. Двойной клик по `vrcx.exe`. При первом запуске выбери язык; выбор сохраняется в `config.ini` рядом с exe.
3. Вставь один или несколько IP-адресов **BMC** через пробел, запятую или с новой строки. Заверши ввод пустой строкой.
4. Введи логин BMC (по умолчанию `admin`) и пароль.
5. Ответь на **Собирать ещё и логи с ОС?** — если `да`, введи логин/пароль SDS (по умолчанию `sds`/`sds`). vrcx сам найдёт IP SDS через Redfish→ARP; если не нашёл — спросит руками.
6. Смотри живую таблицу: каждая строка показывает `BMC ok/total | OS ok/total` пока идёт сбор.
`Ctrl+C` — прерывание, неполная сессия удаляется.
## Структура вывода
```
out/<ДДММГГГГ_ЧЧММСС>/
├── <bmc_ip>/
│ ├── bmc/ команды для BMC (inventory, sensors, sellog, Redfish, …)
│ └── os/ команды для SDS (lsiget, storcli, smartctl, journal, …)
├── <bmc_ip_2>/
│ ├── bmc/
│ └── os/
├── archives/
│ ├── dump_<bmc_ip>.tar.gz
│ └── dump_<bmc_ip_2>.tar.gz
├── vrc.log
└── err_out.log
out/<ДДММГГГГ_ЧЧММСС>.tar.gz ← готовый бандл для саппорта
```
## Конфигурация
`config.ini` лежит рядом с exe и создаётся при первом запуске. Каждая опция снабжена комментарием (EN + RU). Что можно крутить:
| Секция | Ключ | Дефолт | Что делает |
|--- |--- |--- |--- |
| `General` | `language` | (спросит) | `en` / `ru` |
| `BMC` | `default_user` | `admin` | Enter на вопросе логина BMC примет это значение |
| `OS` | `collect_by_default` | `no` | Сразу включать «Собирать ещё и логи с ОС?» как «да» |
| `OS` | `default_user` | `sds` | Логин SDS по умолчанию |
| `Discovery` | `ping_sweep` | `yes` | Прогревать ARP-таблицу `/24`-пингом, если IP SDS неизвестен |
| `Run` | `parallel_hosts` | `8` | Макс. количество BMC, опрашиваемых параллельно |
## Что собирает
| Источник | Откуда |
|---|---|
| **BMC** | Таблица в [`commands.py`](dev/src/vrcx/commands.py): команды YADRO CLI (`bmc info version`, `lsinventory -j`, `health logs show sellog`), `journalctl`-юниты, чтение файлов (`/proc/cpuinfo`, `/etc/os-release`, …), Redfish `/redfish/v1/Systems`. |
| **SDS (ОС)** | Таблица в [`os_commands.py`](dev/src/vrcx/os_commands.py): `lsigetlinux.sh`, `storcli64 /call show all`, `nvme list`, `smartctl -x` по каждому диску, `dmidecode`, `dmesg -T`, `journalctl -b`, `/var/log/messages`, `lspci`, `lsblk`. |
Добавить новый артефакт — одна строка в нужной таблице.
## Совместимость
- Структура вывода повторяет VRC v1.1b — маршрут саппорта по BMC-части не меняется.
- Цель: серверы YADRO Vegman с OpenBMC + сервисная ОС SDS (база CentOS Stream 10).
- Хост: Windows 10 / 11. Python ни на ноутбуке, ни на сервере не нужен.
## Сборка из исходников
```
git clone https://github.com/Engelgardt23/vrcx.git
cd vrcx
python -m pip install rich paramiko pyinstaller
python -m PyInstaller --onefile --console --name vrcx --icon dev/assets/icon.ico --paths dev/src dev/vrcx-launcher.py
```
Раскладка репозитория (`dev/` / `prod/` / `old/`) и релизный flow описаны в [`CONTRIBUTING.md`](CONTRIBUTING.md).
## Лицензия
MIT — см. [LICENSE](LICENSE).