Skip to content

Releases: manasa-bhagwat/vm-deploy-engine

vmdeploy v2.0.5 — First Stable CLI Release (Cobra, SSH, Multi-Config, Installer)

27 Nov 22:43

Choose a tag to compare

📦 Release: v2.0.5 — Cobra-Powered CLI for VM Deploy Engine

Release Date: 28 Nov 2025

This release marks the first Cobra-powered CLI version of the VM Deploy Engine, completing the foundational architecture for the Go rewrite (v2.x series).

The tool now follows a CNCF-style CLI structure, supports key-based SSH authentication, and contains a fully functioning deployment orchestration pipeline equivalent to the original Bash versions (v1.x).


Highlights

  • Migrated to a real CLI framework (Cobra)

  • Adopted key-based SSH authentication

    • PEM files
    • Passphrase-protected keys
    • SSH Agent forwarding (SSH_AUTH_SOCK)
  • Added a modular deployment orchestrator. Operators now include:

    • Installer
    • GitOps
    • DBOps
    • MavenOps
    • SystemdOps
  • Introduced a clean config layout

    • appconfig.yaml
    • vmconfig.yaml
  • Cobra CLI

    • Clean subcommand tree
    • Delegated execution via rootCmd.Execute()
    • Future-ready structure for upcoming commands:
      • vmdeploy logs
      • vmdeploy status
      • vmdeploy rollback
      • vmdeploy doctor
    • Plugin-friendly architecture
  • SSH Enhancements

    • Support for .pem private keys
    • Passphrase support
    • SSH Agent support
    • Strong validation + fallback logic
    • No password-based SSH in v2.0.5
  • Deployment Orchestrator implements the entire v1.x Bash engine in Go:

    • Install base packages
    • Clone repo via PAT
    • Build app with Maven
    • Provision DB
    • Create .env file
    • Create .service (systemd) unit
    • Reload systemd
    • Restart service

📦 Included Artifacts (Release Assets)

The following files are attached to this release:

  • vmdeploy-linux-amd64
  • vmdeploy-linux-arm64
  • vmdeploy-darwin-amd64
  • vmdeploy-darwin-arm64
  • vmdeploy-windows-amd64.exe
  • checksums.txt
  • install.sh
  • install.ps1

You can download the appropriate binary for your OS below.


📥 Installation Guide

1️⃣ Using the Installer Script (Recommended)

Linux / macOS

curl -LO https://github.com/manasa-bhagwat/vm-deploy-engine/releases/download/v2.0.5/install.sh
chmod +x install.sh
./install.sh

This script will:

  • Detect your OS + architecture
  • Download the correct binary
  • Set executable permissions
  • Move it to /usr/local/bin

Windows

  1. Download the PowerShell installer script from the release assets:
install.ps1

Or run directly via PowerShell:

Invoke-WebRequest -Uri "https://github.com/manasa-bhagwat/vm-deploy-engine/releases/download/v2.0.5/install.ps1" -OutFile "install.ps1"
  1. Run the Installer
    Open PowerShell as Administrator and execute:
Set-ExecutionPolicy Bypass -Scope Process -Force
.\install.ps1

The installer will:

  • Detect your Windows architecture (x64 / arm64)
  • Download vmdeploy-windows-{arch}.exe
  • Install it under: C:\Program Files\vmdeploy\
  • Add that directory to your system PATH

Note:

  • If vmdeploy is not recognized, restart your PowerShell or Windows session to reload PATH changes.
  • The installer mirrors the exact behavior of the Linux/macOS install.sh script.
  • No separate configuration is required after installation.

2️⃣ Manual Installation

Linux / macOS

chmod +x vmdeploy-linux-amd64
sudo mv vmdeploy-linux-amd64 /usr/local/bin/vmdeploy

Windows

  1. From the release assets, download the file: (or the arm64 variant if applicable)
vmdeploy-windows-amd64.exe
  1. Rename the Binary (optional but recommended) -
vmdeploy.exe
  1. Move vmdeploy.exe to a directory where you keep CLI tools, for example: Create the folder if it does not exist.
C:\Program Files\vmdeploy\
  1. Add the installation folder to your system PATH:
  • Press Start → search “Environment Variables”
  • Open “Edit the system environment variables”
  • Click Environment Variables
  • Under System variables, select Path
  • Click Edit → New
  • Add: C:\Program Files\vmdeploy\
  • Click OK to save everything.

Note:

  • You may need to reopen PowerShell to refresh PATH.
  • Keep the .exe in a stable location — moving it later requires updating PATH.
  • This manual install flow mirrors what the automated install.ps1 script performs behind the scenes.

3️⃣ Verify Installation

vmdeploy version

📘 Usage

vmdeploy version
vmdeploy deploy --app-config appconfig.yaml --vm-config vmconfig.yaml

Note: Make sure to run deploy command from terminal where your appconfig.yaml and vmconfig.yaml are located.

Post-deploy:

After vmdeploy deploy ... completes successfully you can immediately run the dynamic SSH command above from the same terminal to open an interactive shell on the VM.

Example flow

# 1. Deploy
vmdeploy deploy --app-config appconfig.yaml --vm-config vmconfig.yaml

# 2. When you see success, enter the VM
ssh -i "$(yq e '.ssh_key_path' vmconfig.yaml)" "$(yq e '.user' vmconfig.yaml)@$(yq e '.host' vmconfig.yaml)"

# 3. Inside VM
sudo tail -n 200 /var/log/syslog
# or
sudo journalctl -u bankapp -f

This works for ephemeral and long-lived VMs because the command references vmconfig.yaml instead of a static local mapping.

Checksums

Verify binary integrity:

sha256sum -c checksums.txt

Note

  • Ensure your VM is configured for SSH key login.
  • Ensure Maven & Git operations on the remote VM run without interactive prompts.

🙌 Thanks & What’s Next

This release lays the groundwork for:

  • Parallel deployments
  • Multi-node orchestrator
  • Rollbacks
  • Plugin architecture
  • Observability hooks

The v2.1.x series will focus on:

👉 status, logs, and rollback
👉 Structured logs + tracing
👉 Deployment audit logs
👉 Multi-server deployments
👉 Comprehensive unit tests

Download the binaries below to get started!