pmx 0.2.2
pmx 0.2.2
Proxmox command-line interface.
Install
Download the archive for your platform from the assets below, verify it
against pmx_0.2.2_SHA256SUMS, extract, and place pmx on your PATH.
Persona symlinks (optional)
pmx inspects how it was invoked (argv[0]) to decide which commands to
expose: named (or symlinked as) pve, it hoists the Proxmox VE groups to
the root; named pbs, it hoists the Proxmox Backup Server groups; named
pdm, it hoists the Proxmox Datacenter Manager groups. The archive ships
a single pmx binary — most archive formats (notably .zip, used for
the Windows build) do not reliably preserve symlinks, so create them
yourself after installing:
sudo ln -s pmx /usr/local/bin/pve
sudo ln -s pmx /usr/local/bin/pbs
sudo ln -s pmx /usr/local/bin/pdm(make install, when building from source, creates all three symlinks
automatically.) See the README's Personas section
for the full command surface each persona exposes.
Changelog
- 997f169: Classify PVE bare-die 500 pool/storage not-found errors as absent (@wayneeseguin)
- 5d77515: Resolve capacity gate denominator from real pool stats (@wayneeseguin)
- b0fba61: ci(release): fail the release when the tap cask version does not match the tag (@wayneeseguin)
- a009782: docs(cli): explain that protected backups are excluded from retention (@wayneeseguin)
- 55810c5: feat(cli): add context update for editing single fields without $EDITOR (@wayneeseguin)
- e0b7879: feat(cli): check for an inbound allow rule before enabling the firewall (@wayneeseguin)
- 4d9859c: feat(cli): warn when the cluster is inquorate before HA and SDN changes (@wayneeseguin)
- 049fd2f: feat(config): add UpsertLabContext with ownership guard and field policy (@wayneeseguin)
- 0a7584d: feat(config): add keychain writer stubs and ErrKeychainUnsupported (@wayneeseguin)
- 789aca5: feat(config): store and delete keychain secrets via security(1) stdin (@wayneeseguin)
- 479f48e: feat(e2e): skip checks blocked by server policy or environment (@wayneeseguin)
- 99c47cc: feat(lab): add 'lab context rm' to remove an orphaned lab context (@wayneeseguin)
- e642fc7: feat(lab): add 'pmx lab context sync' command (@wayneeseguin)
- d452632: feat(lab): add SSH mint sequence for lab context bootstrap (@wayneeseguin)
- 013cdd3: feat(lab): add pure helpers for context registration (@wayneeseguin)
- 923543e: feat(lab): auto-register lab context after 'lab create --start' (@wayneeseguin)
- 4ba5209: feat(lab): cluster, qdevice, sdn, and nfs verbs for nested lab clusters (@wayneeseguin)
- 238c8d5: feat(lab): multi-node lab topologies with clusters, QDevice, and capacity gating (@wayneeseguin)
- d0a0072: feat(lab): orchestrate lab-context mint, probe-reuse, and end-to-end verify (@wayneeseguin)
- 967b8a0: feat(lab): refresh pinned lab-context fingerprint after cluster init (@wayneeseguin)
- 11fddee: feat(lab): remove lab context and keychain secret on destroy (--keep-context to opt out) (@wayneeseguin)
- 25c8fb6: feat(lab): scale command for lab topology migrations (@wayneeseguin)
- ae0e7c0: feat(lxc): support cluster-wide listing with --cluster (@wayneeseguin)
- b2fcf9e: feat(qemu,lxc)!: require --yes for snapshot rollback and delete (@wayneeseguin)
- e5b990d: feat(qemu,lxc): add hookscript get/set/unset subcommands (@wayneeseguin)
- e317183: feat(scripts): provision a nested PBS/PDM e2e stack on the lab (@wayneeseguin)
- 9a004df: fix(cli): warn on firewall enablement and sharpen risky-option help (@wayneeseguin)
- db7e3a9: fix(config): reject whitespace and control chars in keychain field inputs (@wayneeseguin)
- 050d540: fix(lab): check Fprintf return in keychain-unsupported warning path (@wayneeseguin)
- 0813fe2: fix(lab): emit snake_case keys from lab config show JSON output (@wayneeseguin)
- fc097ed: fix(lab): guard lab-context secret reuse by identity and probe failure class (@wayneeseguin)
- 324b6b4: fix(lab): keep removing the lab context when the keychain backend is unsupported (@wayneeseguin)
- 9173955: fix(lab): refresh pinned lab-context fingerprint after scale forms the cluster (@wayneeseguin)
- 8de412c: fix(lab): reject empty token secret and align fingerprint regex (@wayneeseguin)
- 7e09a6f: fix(lab): render access grant summary as a table row so it reaches output (@wayneeseguin)
- df5d58a: fix(lab): stop 'lab destroy --dry-run' from removing the context on an empty pool (@wayneeseguin)
- 3fd0421: fix(pbs): render job timestamps as RFC 3339 instead of raw epochs (@wayneeseguin)
- eabf221: fix(scripts): correct stack provisioning against live PBS and PDM (@wayneeseguin)
- bc9250a: test(config): cover fingerprint-skip when a custom CACert is set (@wayneeseguin)
- 334c017: test(e2e): fix node discovery probe, stale disks verbs, and cover context update (@wayneeseguin)