Simula Research Laboratory / Center for Resilient Networks and Applications / NorNet
Homepage of Thomas Dreibholz / Virtual Machine Image Builder and System Installation Scripts


Thomas Dreibholz's
Virtual Machine Image Builder and System Installation Scripts
Virtual Machine Image Builder and System Installation Scripts Logo


πŸ“‘ Quick Navigation


πŸ’‘ What are the Virtual Machine Image Builder and System Installation Scripts?

This repository contains Virtual Machine (VM) image building and system installation scripts to automatically generate freshly installed VM or container images for different projects and purposes, like minimal servers, basic console setups, development environments, as well as full desktop machines. The scripts use Packer (https://www.packer.io).

As part of the VM setup process, it is also possible to set custom boot-splashes and desktop/screen locker/login background images for customisation.


πŸ’Ύ Sources

The Virtual Machine Image Builder and System Installation Scripts are released under the GNU General Public Licence (GPL).

The Git repository of the Virtual Machine Image Builder and System Installation Scripts sources can be found at https://github.com/simula/nornet-vmimage-builder-scripts:

git clone https://github.com/simula/nornet-vmimage-builder-scripts vmimage-builder-scripts
cd vmimage-builder-scripts

Note: The repository name β€œnornet-vmimage-builder-scripts” refers to the NorNet project, since the initial scripts were developed for the purpose of NorNet system installations. However, the scripts have been generic and project-independent for a long time. But in order to keep the repository URL as-is, the repository still contains β€œnornet” in its name.

Contributions:


⭐ Requirements

The following installations of dependencies are necessary:


πŸ’» Usage

Run on a pre-installed system directly

Take a look at the script make-direct for installing on the system itself (i.e. not building VMs but configuring the machine directly):

./make-direct <PROJECT>

If the system does not have the dependencies installed, run system-setup:

./system-setup <PROJECT>

This helper script first installs the dependencies if necessary, and then calls make-direct.

Build VMs or containers using Packer

To start a VM or container build (using Packer), run one of the make-* scripts:

./make-<PROJECT>

with <PROJECT> e.g. β€œminimal”, β€œbasic”, β€œdevelopment”, β€œkde”, β€œkde+development”, β€œhipercontracer”, etc.!

See further details about the different VM hypervisor variants, systems, and projects (choice of packages to install) below!


🎫 Hypervisors

VirtualBox

The VirtualBox images use optimised settings for display, network and storage. Two disk layouts are available: 3-disk (separate disks for /, /home, and swap; recommended) and 1-disk (one disk for everything).

Proxmox

VMs for usage in Proxmox. They are basically like the VirtualBox variant, with the QEMU Guest Agent installed. Two disk layouts are available: 3-disk (separate disks for /, /home, and swap; recommended) and 1-disk (one disk for everything).

QEMU

The QEMU images use optimised settings for display, network and storage. Two disk layouts are available: 3-disk (separate disks for /, /home, and swap) and 1-disk (one disk for everything). The QEMU images are particularly useful for OpenStack, for which the disk layout should be 1-disk.

vSphere

VMs for usage in vSphere. They are basically like the VirtualBox variant, with the Open VM Tools installed.

Note: The vSphere support of the scripts is not tested any more!

Docker

Containers for usage in Docker.


πŸ’» Systems

The following operating systems are currently supported as VM guests:

Details can be found in the directories installer and http.

Ubuntu Linux

General settings:

Debian Linux

General settings:

Fedora Linux

General settings:

FreeBSD

General settings:


πŸ“¦ Projects

Details can be found in the directory projects.

Minimal

The minimal installation for the system with the settings described above. This project is meant mainly for testing purposes. In most cases, you want the Basic project instead!

Provided packages:

Further properties:

Basic

The β€œBasic” installation is based on the Minimal installation.

It must contain the following packages:

KDE

The β€œKDE” installation is based on the Basic installation.

It must contain the following packages:

Further properties:

Development

The β€œDevelopment” installation is based on the Basic installation.

It must contain the following packages:

It must contain the following libraries and development files:

Further properties:

KDE+Development

The β€œKDE+Development” installation is based on the KDE and Development installation.

Further Projects

NorNet

Basic for general-purpose server usage, particularly for working with NorNet purposes.

NorNet-Desktop

Basic NorNet VMs for general-purpose desktop usage. They are based on the NorNet images, with additional KDE desktop.

NEAT

Basic for general-purpose desktop usage, particularly for working with NEAT. They are based on the NorNet-Desktop images, with NEAT packages and build environment.

Features:

RSerPoolDemo

Basic for general-purpose desktop usage, particularly for working with RSerPool, based on the KDE+Development installation.

Features:

SimulaMet-Desktop

These are SimulaMet desktop VMs, based on the KDE+Development installation.

Features:

5G-VINNI

Basic for general-purpose desktop usage, particularly for working with 5G-VINNI. They are based on the NorNet images.


Networking and System Management Software

Projects using the VM Image Builder and System Installation Scripts