Live demo

Migrate a real CentOS 7 host — and read the evidence

This runs the actual vrtmv engine against a real CentOS 7 rpm database, translates every package through the live Translation Index over the authenticated API, and renders the Ansible role and the signed parity attestation it produces. Nothing here is mocked.

Source: a cold CentOS Linux 7.9 root with a real Berkeley-DB rpm database and a bonded-network config — the kind of host stranded by CentOS end-of-life. Pick a target and run.
checking engine…
✓ runs the real engine live. The grayed options sample the 90+ Linux releases vrtmv covers — back to the year 2000, across 16 distribution families. They're disabled on purpose.
This source is deliberately configured with a custom timezone, a locked package version, a boot-time kernel module, a pending at job, an NTP server and a custom SELinux file context — the New in beta aspects below are findings on this exact source, not canned examples.

vrtmv run New in beta · v0.7.0-beta.1

migrate (what the button above runs) always stops at a plan: an Ansible role and a signed attestation for a human to review and apply. run is a new, separate, explicitly opt-in command that executes that same chain unattended against a real target instead — plan → apply the role over real SSH → carry the promised workload config → optional data copy → verify → optional Kubernetes/OpenShift cutover. It's resumable (--resume, against a state file under --out), retries transient failures, and supports a maintenance window (--not-before), a completion webhook, and the same health-gate verify already offers. It still refuses to run database export/import unattended — no verified credentials to run them with — and stops there with a manual-step message instead.

$ vrtmv run --root centos7-mnt --target rocky9 --target-ssh root@10.0.1.20 -o out/

This public demo intentionally runs migrate only — run needs a real SSH-reachable target to apply changes to, and a browser-triggered demo isn't one. Full flag reference: beta.docs.vrtmv.com/commands/run (beta enrolment required).

Parity attestation — summary

Caveats & manual steps — the conditions that need a human

Translations — what each canonical maps to on the target

CanonicalTarget packagesConfidenceCaveat

Base OS & runtime packages — install unchanged, not part of the Index by design

Gaps — reported honestly, not hidden

Data migration — the payload no package owns

Machine aspects — posture beyond the package list, checked by verify against the rebuild

roles/vrtmv_migration/tasks/main.yml
vrtmv-attestation.json
engine log