navig-vm
Local VMware Workstation VMs from verified cloud images, provisioned on first boot with cloud-init and driven from
navig vm(create, start, ssh, snapshots).
Works on its own — its own CLI, no navig required · v0.1.0 · not on PyPI yet (install from source below)
On its own (no navig needed)
pip install "git+https://github.com/navig-run/plugins#subdirectory=navig-vm"
navig-vm --help # no navig needed
With navig
pip install "git+https://github.com/navig-run/plugins#subdirectory=navig-vm"
navig vm --help
Commands
| Command | What it does |
|---|---|
navig vm console |
The VM's serial console: kernel, systemd and cloud-init output, as text. |
navig vm create |
Build a VM from a cloud image: disk, first-boot seed, its own SSH key. |
navig vm destroy |
Delete a VM and its folder. Only ever a folder navig created under the VM root. |
navig vm exec |
Run one command in the VM; its exit status is this command's. |
navig vm ip |
The VM's IP address (reported by VMware Tools in the guest). |
navig vm list |
Every VM navig built, and whether it is running. |
navig vm password |
The guest owner's password (for the login screen and sudo). |
navig vm revert |
Go back to a snapshot (the VM is powered off afterwards; start it again). |
navig vm screenshot |
Save a PNG of the VM's screen (needs VMware Tools running in the guest). |
navig vm snapshot |
Save the VM's current state under a name. |
navig vm snapshots |
The VM's snapshots. |
navig vm ssh |
Open a shell in the VM as its owner (extra arguments run as a command). |
navig vm start |
Power a VM on. |
navig vm stop |
Shut a VM down (cleanly, through the guest, unless --hard). |
navig vm wait |
Wait until first-boot provisioning has finished (and, for navig-os, the reboot). |
Local virtual machines on VMware Workstation, built from a verified cloud image in one command and set up on first boot by cloud-init — then driven from the terminal.
navig vm create lab # Debian 13, 4 CPU, 8 GB, 40 GB, owner = your user name
navig vm create srv --image ubuntu-24.04 --headless # Ubuntu Server 24.04 LTS instead
navig vm wait lab # until first-boot provisioning is done
navig vm ssh lab # a shell, with this VM's own SSH key
navig vm snapshot lab clean
navig vm revert lab clean # back to it any time
Runs inside navig as navig vm, or on its own as navig-vm (pip install navig-vm).
A NAVIG OS lab machine
navig vm create navig-os-lab --recipe navig-os --repo <signed NAVIG apt repo folder> --keyboard fr
navig vm wait navig-os-lab
navig vm snapshot navig-os-lab fresh-install
The navig-os recipe shares the repository folder into the VM, installs the NAVIG OS
packages from it with the same installer an existing Debian machine uses, and reboots
into a login screen offering NAVIG OS (full screen) and GNOME (the desktop, with
NAVIG OS as an app). Build the repository with apps/os/linux/build-all.sh.
How a VM is built
- Downloads the cloud image once and checks it against the publisher's sums (Debian: SHA-512; Ubuntu: SHA-256).
- Debian ships a raw disk: a VMDK descriptor points at it. Ubuntu ships a VMDK, used
as-is. Either way
vmware-vdiskmanagerconverts it to a growable disk and grows it to--diskGB (cloud-init grows the partition at boot). No third-party tool is needed. - Writes a cloud-init seed ISO (label
CIDATA): the owner account (password stored only as a SHA-512 hash), a fresh SSH key for this VM, and the recipe. - Writes the
.vmx— UEFI, PVSCSI, vmxnet3 on NAT.
Each VM is a folder under ~/Documents/Virtual Machines (change it with
navig config set plugins.vm.dir <folder>) holding the VM, its own id_ed25519 and
known_hosts, and navig-vm.json. Your personal SSH keys and known_hosts are never used
or touched. destroy deletes only a folder navig created there.
Metadata
Release files for navig-vm 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| navig_vm-0.1.0.tar.gz | 39.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| navig_vm-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 74.0 kB