vrcx/README.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

5 KiB

vrcx

Latest release Build License: MIT Lang: en | ru

🇺🇸 English | 🇷🇺 Русский

vrcxVegman Remote Collect (extended). A portable, scripted replacement for YADRO's VRC.exe that pulls diagnostic logs from a Vegman server and (optionally) from its SDS service OS, in parallel, into a single archive ready to send to support.

The original VRC only touches the BMC. In real incidents support almost always asks for OS-side logs too (lsiget, storcli, smartctl, journals). With vrcx that's one double-click instead of a USB-stick run.


What it does

  • Connects to N BMCs in parallel. Per host, also opens a second SSH session to the SDS service OS and runs both branches concurrently.
  • SDS IP is discovered automatically: vrcx asks the BMC over Redfish for the host NIC's MAC, then matches it against the laptop's ARP table (warming it with a quick /24 ping-sweep when needed).
  • Each host gets a clean bmc/ and os/ sub-folder; all per-host tarballs land in a shared archives/ folder and an outer bundle wraps the whole session.
  • BMC-only mode (when Collect OS logs too? is answered no) produces an artefact set 1:1 compatible with the original VRC support flow.

Download

Grab the latest release: releases page. The asset is vrcx-portable-vX.Y.Z.zip.

Run

  1. Unzip anywhere.
  2. Double-click vrcx.exe. On the very first launch pick a language; the choice is saved into config.ini next to the exe.
  3. Paste one or more BMC IPs (whitespace, comma, or newline separated). End input with an empty line.
  4. Enter the BMC user (default admin) and password.
  5. Answer Collect OS logs too? — if yes, enter SDS user/password (defaults sds/sds). vrcx will discover each SDS IP via Redfish→ARP, falling back to a manual prompt when needed.
  6. Watch the live progress table — each row shows BMC ok/total | OS ok/total while collection runs.

Ctrl+C aborts and removes the incomplete session folder.

Output

out/<DDMMYYYY_HHMMSS>/
├── <bmc_ip>/
│   ├── bmc/        BMC commands (inventory, sensors, sellog, Redfish, …)
│   └── os/         SDS host commands (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/<DDMMYYYY_HHMMSS>.tar.gz   ← one-click bundle for support

Configuration

config.ini lives next to the exe and is created on first run. Every option carries an inline description (EN + RU). Typical knobs:

Section Key Default What
General language (asked) en / ru
BMC default_user admin Hit Enter on the BMC user prompt to accept this
OS collect_by_default no Pre-tick the Collect OS logs too? answer
OS default_user sds Default SDS user
Discovery ping_sweep yes Warm the ARP table with a /24 ping-sweep when SDS IP is unknown
Run parallel_hosts 8 Max BMCs collected in parallel

What gets collected

Side Where it comes from
BMC Per-spec table in commands.py: BMC CLI commands (bmc info version, lsinventory -j, health logs show sellog), journalctl units, file reads (/proc/cpuinfo, /etc/os-release, …), Redfish /redfish/v1/Systems.
SDS host Per-spec table in os_commands.py: lsigetlinux.sh, storcli64 /call show all, nvme list, smartctl -x per drive, dmidecode, dmesg -T, journalctl -b, /var/log/messages, lspci, lsblk.

Adding a new artefact = one line in the relevant table.

Compatibility

  • Output structure mirrors VRC v1.1b — YADRO support flow is unchanged for the BMC side.
  • Targets: YADRO Vegman servers with OpenBMC + the SDS service OS (CentOS Stream 10 base).
  • Host: Windows 10 / 11. No Python required on the laptop or on the server.

Build from source

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

See CONTRIBUTING.md for the full repo layout (dev/ / prod/ / old/) and release flow.

License

MIT — see LICENSE.