Streamlining development VM management

As developers, we constantly seek ways to automate repetitive tasks, such as configuring development environments on our workstations. In the past, we discussed easy and rapid solutions for deploying Kubernetes clusters. This time, I found a similar challenge but with hardware virtualization. What happens when we need to use a virtual machine instead of a container? The process becomes more tedious. We find ourselves downloading ISO installation images, installing the operating system, and configuring it manually. While using preinstalled virtual disk images can offer some relief, the heavy and repetitive manual process remains. I know that solutions like Vagrant exist, but I prefer a lightweight system that doesn’t require additional dependencies.

To address this problem, I have created a workspace managed by a Bash script. With just one command, you can quickly deploy a preconfigured Debian 11 virtual machine. The workspace allows easy customization through YAML files, enabling you to modify virtual hardware settings, IP addresses, disk sizes, operating systems, and more. I think that the project is well-documented, so it should be easy to customize and extend. Please note that the script does not handle virtualization dependencies such as QEMU or libvirt. You can find the necessary dependencies listed in the documentation, so it should be easy to find how to install and configure them on your operating system.

Give it a try, and I hope you find it useful. The project is published under the LGPL v3 license, welcoming contributions from the community.

Until next time!