Skip to content

SolusVM 2 OS Image Builder

SolusVM 2 OS Image Builder (we will call it Builder from now on) is a tool created by the SolusVM 2 team. Builder helps you build custom cloud-init compatible QEMU/KVM OS images.

SolusVM 2 comes with a number of OSes and applications available out of the box. However you may want to add your own custom OS images (with desired parameters, installed packages, applications, and so on). In some cases, building a custom OS image can be not a trivial task. To help you make it easier, we created Builder, which is useful if you want to add the following:

  • An OS image with the preinstalled application. Deploying the application directly when a server is created is not an option because the application takes a lot of time to be deployed.
  • An OS whose OS image is not publicly available yet and you want to make it available earlier than the OS vendor. For example, CentOS 8 images were not publicly available for some time even though the OS itself was already released.
  • An OS that does not have a publicly available image.

How Builder Works

Before you can start building your custom images using the Builder README, we suggest that you first get a general idea of how Builder works.

Builder as a tool consists of the following:

  • The main build.sh script that builds images using Packer by HashiCorp.
  • A number of JSON templates that Packer uses.

    The templates define how an image will be built, for example: what OS to take and where to take it from, what applications and other software to install, what commands to run, and so on. Templates help automate creating images.

    We prepared templates for the following OSes: CentOS, Rocky Linux, Alma Linux, Ubuntu, Debian, Alpine Linux, VzLinux, Oracle Linux, and Windows. If one of them is the OS of your custom image, you can take the corresponding template as a basis. Depending on your desired OS image, you will need to edit the template according to the Packer documentation.

  • A number of additional scripts that can be useful for building images. For example, the script that transfers a built OS image to another server via scp. You launch these scripts specifying the corresponding options when launching build.sh.

In short, Builder is a collection of scripts and configs that help you build images with Packer easier.

Back to top