Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Repository files navigation

vmctl

Simple, safe, and reliable virtual machine management for standalone ESXi

Version Python ESXi License


vmctl is a modern CLI tool for creating, managing, and operating virtual machines on standalone ESXi without vCenter.

Key Features

  • Fully standalone (works without vCenter)
  • Template-based provisioning with cloud-init
  • Multi-datastore support with placement control
  • Strict quotas and protection for critical VMs (protected_vms)
  • Full lifecycle: create → status → delete → purge + recover
  • Secure model: forced-command SSH helper with minimal privileges
  • Built-in diagnostics: preflight + doctor

Quick Start

# Download and install
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.env

vmctl preflight
vmctl doctor

VM Creation Example

vmctl create \
  --name web-prod-01 \
  --template alma10 \
  --cpu 4 \
  --ram-mb 8192 \
  --disk-gb 80 \
  --network "VM Network" \
  --user admin \
  --ssh-key-file ~/.ssh/id_ed25519.pub \
  --ip dhcp

Core Commands

  • create — create a new VM
  • status <name> — show VM status
  • list [--all] — list VMs
  • delete <name> [--force] — delete a VM
  • purge <deleted-name> — permanently remove deleted VM data
  • recover [--apply] — recover VM state from markers
  • preflight — run configuration checks
  • doctor — run full system diagnostics

Requirements

  • ESXi 7.0+ Enterprise (standalone)
  • Linux host (Hermes) with Python 3.8+
  • SSH access from Hermes to ESXi

Security

  • Direct mode is disabled by default
  • Forced-command SSH helper with whitelisted commands
  • Strict path and name validation
  • Protected VM list support (protected_vms)

Documentation


Made with ❤️ for clean and secure ESXi infrastructure

About

vmctl is a modern CLI tool for creating, managing, and operating virtual machines on standalone ESXi without vCenter.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages