Skip to main content

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

  1. Downloads the cloud image once and checks it against the publisher's sums (Debian: SHA-512; Ubuntu: SHA-256).
  2. Debian ships a raw disk: a VMDK descriptor points at it. Ubuntu ships a VMDK, used as-is. Either way vmware-vdiskmanager converts it to a growable disk and grows it to --disk GB (cloud-init grows the partition at boot). No third-party tool is needed.
  3. 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.
  4. 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)

Source distribution for navig-vm 0.1.0
File Size Uploaded
navig_vm-0.1.0.tar.gz 39.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for navig-vm 0.1.0
File Interpreter ABI Platform
navig_vm-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 74.0 kB

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page