This package contains bootstrap scripts for the Hermes VM + standalone ESXi side of vmctl.
Latest release page: https://github.com/bashrusakh/vmctl/releases/latest
Tip: use the latest release page above to avoid hardcoding a tag in docs. If you need a pinned/reproducible install, use a versioned vX.Y.Z archive URL.
install.env.example
scripts/install-full-stack.sh
scripts/bootstrap-esxi-side.sh
scripts/lib/load-env.sh
docs/BUGFIX_LIST_TEST_PHASE.md
# Option A: open latest release in browser and copy the current asset URL
# https://github.com/bashrusakh/vmctl/releases/latest
# Option B: pinned install (example)
curl -L https://github.com/bashrusakh/vmctl/releases/latest/download/hermes-vmctl-v0.1.4.tar.gz -o hermes-vmctl.tar.gz
tar -xzf hermes-vmctl.tar.gz
cd hermes-vmctl
cp install.env.example install.env
nano install.env
sudo scripts/install-full-stack.sh --env ./install.envDry run:
sudo scripts/install-full-stack.sh --env ./install.env --dry-runThe installer creates:
Hermes VM:
vmctl-runner
/opt/hermes-vmctl
sudoers rule for Hermes user
SSH key for ESXi helper
govc runtime env
vmctl.yaml
ESXi:
vmctl-api
vmctl-ssh
VMCTL_API role
restricted authorized_keys
forced-command helper
The SSH helper is multi-datastore aware and accepts datastore as an explicit checked argument.
- MAC addresses are generated by ESXi (
ethernet0.addressType = "generated"). - Static MAC pool is deprecated and not used in v1 create/delete/purge flows.
For Hermes Agent automation after install, use:
skills/devops/vmctl-ops/SKILL.md
It defines the exact post-install gate (mode/preflight/doctor), smoke create-test, cleanup, and recovery flow.
- No vCenter support is required or used.
- Standalone ESXi 7 Enterprise is the supported target for v0.1.0-rc1.
- Create-flow supports powered-off VM templates already stored on datastore.
- OVF/OVA import is not supported in create-flow.
- Snapshot-chain templates are not supported.
- Static IP provisioning is disabled/forbidden in v1.
- MAC addresses are generated by ESXi.
- Production backend is ESXi forced-command helper.
- Direct ESXi backend is break-glass/legacy only and disabled by default.
- Non-root SSH behavior on ESXi may require re-bootstrap after ESXi reboot depending on access.conf persistence.