# 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/ команды для BMC (inventory, sensors, sellog, Redfish, …) │ └── os/ команды для SDS (lsiget, storcli, smartctl, journal, …) ├── / │ ├── bmc/ │ └── os/ ├── archives/ │ ├── dump_.tar.gz │ └── dump_.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).