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
6.7 KiB
vrcx
🇺🇸 English | 🇷🇺 Русский
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.
Скачать
Последний релиз: страница релизов.
Архив: vrcx-portable-vX.Y.Z.zip.
Запуск
- Распакуй куда угодно.
- Двойной клик по
vrcx.exe. При первом запуске выбери язык; выбор сохраняется вconfig.iniрядом с exe. - Вставь один или несколько IP-адресов BMC через пробел, запятую или с новой строки. Заверши ввод пустой строкой.
- Введи логин BMC (по умолчанию
admin) и пароль. - Ответь на Собирать ещё и логи с ОС? — если
да, введи логин/пароль SDS (по умолчаниюsds/sds). vrcx сам найдёт IP SDS через Redfish→ARP; если не нашёл — спросит руками. - Смотри живую таблицу: каждая строка показывает
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: команды 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: 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.
Лицензия
MIT — см. LICENSE.