Quickstart
This walks from a cold CentOS 7 image to a migration plan for Rocky 9.
1. Look inside the image
No account or mounting required — this reads magic bytes:
vrtmv assess centos7.vmdk
2. Extract the inventory
vrtmv inventory --image centos7.vmdk
# add --resolve to map packages to canonicals via the API
vrtmv inventory --image centos7.vmdk --resolve
3. Classify the configuration (local, no account)
vrtmv drift --image centos7.vmdk
drift separates /etc into what to carry (real workload config), what to hold back as a caveat (host identity, accounts, SSH keys), what is vendor-default, and what to skip (secrets, generated noise).
4. See feasibility before committing
vrtmv migrate --image centos7.vmdk --target rocky9 --preflight
--preflight reports counts and blocking steps, writes no files, and consumes no usage credit.
5. Produce the migration plan
vrtmv migrate --image centos7.vmdk --target rocky9 -o out/
This writes:
out/roles/vrtmv_migration/tasks/main.yml— the Ansible role that rebuilds the workload on Rocky 9;out/vrtmv-attestation.json— the signed, host-specific parity report.
6. Tag it (optional)
Record the migration under an engagement so it becomes a tracked, auditable record:
vrtmv migrate --image centos7.vmdk --target rocky9 -o out/ \
--engagement acme-2026 --vm-id web01 --migration-type initial