https://github.com/c-hartmann/vmmcon
Backup Repo for VMM Console (*Work in Progress*)
https://github.com/c-hartmann/vmmcon
bash kvm qemu virtualbox vmware
Last synced: about 2 months ago
JSON representation
Backup Repo for VMM Console (*Work in Progress*)
- Host: GitHub
- URL: https://github.com/c-hartmann/vmmcon
- Owner: c-hartmann
- Created: 2024-05-21T08:10:57.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-01T12:05:33.000Z (about 1 year ago)
- Last Synced: 2025-07-28T21:45:36.304Z (11 months ago)
- Topics: bash, kvm, qemu, virtualbox, vmware
- Language: Shell
- Homepage:
- Size: 4.08 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# vmmcon / hopper
(final naming not decided yet)
> **this is work-in-progress and has works-for-me status only!**
## Abstract
A VM console tool to first and foremost create new VMs from predefined VM config sets. Secondly it allows a couple of operations on existing VMs. Supported hypervisors are VirtualBox, QEMU (with KVM), may be VMware (workstation) later.
## Intention
This tool has been created originaly to reverse the use of tools, when it comes to create VMs. This tool starts with a downloaded ISO image and anything goes from that. From the name of the ISO image file a VM "profile" is selected automatically and the VM created the same, including disks, networtk, main memory, bit size, BIOS/UEFI settings and many more aspects of the new VM.
The core of this tool is a large Bash script. Additionaly it comes with some Desktop Integration parts, that allow direct creation after a download or double clicking an ISO image file. On top new VMs are created as Desktop Application files following the XDG standard for it.
## TODO
- support unattended setups wherever possible
- support for QEMU/KVM, VMware
- pre configs in JSON
- TUI interface
- disable manual profile selection
- m4 based build script
- complete abstraction from KDE (or other DE)
- user configurable alias commands
- extract initial desktop integration parts
- respect user env profile settings
- complete refactor it
## Common Commands / Basic Usage
```
Usage: vmmcon [options] [ | ]
Commands:
launch Create _and_ start new VM
create Create a new VM from ISO
start Start an existing VM
stop Stop a VM. (save state and close VM)
reboot Restart a VM (see options --ssh --acpi)
halt Shutdown a VM (gracefully) (--ssh --acpi)
reset Discard any state and poweroff a VM
snap Take a snapshot of the VM
info Show infos of VM
status Show status of VM
rename Rename a VM
clone Create a copy of an existing VM by its name
delete Delete an existing VM by its exact name
open -- Open a session with the vm. Prot is one of 'https' (default), 'http' or 'ssh'
login Enter into the vm via ssh(1)
exec Tries to execute a command either via ssh(1) or other mechanisms
list List all VMs
list List VMs with names starting with
export Export an existing VM by its name as Appliance
import [] Create a new VM from an application container # TODO: use existing VM name / Auto (re)name?
help Shows help (on command line)
readdocs Open the documentation in default browser
Options on creation of a new VM:
-a | --auto Determine the profile auto-magically
-d | --dry-run Dry run - do not create anything
-i | --iso More explicit approach to set ISO image file name
-n | --name Name the machine to create
-o | --option Set option by it's name as in foo=bar
-p | --profile A profile to use
-S | --stamp Append instead of TODAY to vm name
-u | --power-up Power up the VM after creating one
-y | --yes Assume yes to all interactive questions
if no image file is given but required, it will be requested interactively
--vmm= Use VMM as VMM
--vbox Use VirtualBox as VMM
--qemu Use QEMU/libvirt/VMM as VMM
generic options:
-h | --help Show this help
-g | --force-gui Force GUI mode from terminal
-v | --verbose Turn on verbose mode
-V | --version Print the version and exit
```
## Installation
A list of relevant files and directories (user installation)
Base files (VBox only):
```
~/.bash_completion.d/vmmcon-completion.bash
~/.config/vmmconrc
~/.local/bin/vmmcon
~/.local/share/vmmcon/vmms/vbox/functions.sh
~/.local/share/vmmcon/locale/de/LC_MESSAGES/create-vm-from-iso-vbox.*
~/.local/share/vmmcon/automagic.csv
~/.local/share/vmmcon/automagic.local.csv
~/.local/share/vmmcon/matches/*.conf
~/.local/share/vmmcon/profiles/*.conf
~/.local/share/vmmcon/automagic.json
~/.local/share/vmmcon/templates/xdg/desktop-entry-template.desktop
~/.local/share/vmmcon/templates/xdg/desktop-menu-category.directory
~/.local/share/vmmcon/templates/xdg/desktop-menu-category.menu
~/.local/share/vmmcon/icons/display-and-tower.svg
```
Directories used:
```
~/.local/share/applications/vmmcon/
~/.local/share/desktop-directories/
~/.config/menus/applications-merged/
```
KDE desktop integration (Plasma 5):
```
~/.local/share/kservices5/ServiceMenus/create-vm-from-iso-vbox.desktop
```
KDE desktop integration (Plasma 6):
```
~/.local/share/kio/servicemenus/create-vm-from-iso-vbox.desktop
```