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
99 lines
6.7 KiB
Markdown
99 lines
6.7 KiB
Markdown
# vrcx
|
||
|
||
[](https://github.com/Engelgardt23/vrcx/releases/latest)
|
||
[](https://github.com/Engelgardt23/vrcx/actions)
|
||
[](LICENSE)
|
||
[](#)
|
||
|
||
[🇺🇸 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).
|