---
title: OS-Vorlagen und ISOs
description: Bereiten Sie Betriebssystem-Images vor: Erstellen und registrieren Sie CloudStack-Templates sowie Proxmox VE Cloud-Image-Templates.
url: https://nexcmp.com/de/docs/infrastructure/templates/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# OS-Vorlagen und ISOs {#os-templates-and-isos}

> **Wo im Adminbereich:** Services › Virtual Machines › Template (`/vm/templates`). Proxmox-Templates werden pro Cluster unter Infrastructure › Cloud provider › Providers › (cluster) › Clusters aufgeführt.

## Funktion {#what-it-does}

Eine Vorlage ist das Betriebssystem-Image, mit dem eine neue VM gestartet wird. NexCMP speichert Images nicht selbst: Es liest aus, was CloudStack meldet (bereite, als „featured“ markierte Vorlagen) oder was Sie für ein Proxmox-Cluster auflisten, und lässt Sie auswählen, welche davon verkauft werden – mit kundenfreundlichem Namen, Symbol und Login-Benutzer. Diese Seite zeigt, wie Sie Images vorbereiten, die optimal mit NexCMP funktionieren: Passwort-Login, Live-CPU- und RAM-Skalierung, eine Auslagerungsdatei und eine Root-Festplatte, die auf die Tarifgröße anwächst.

## Anforderungen {#requirements}

| Komponente | Anforderung |
|---|---|
| CloudStack-Vorlagen-Builder | Eine Linux-Maschine mit `libguestfs-tools` (`virt-customize`, `virt-sparsify`, `guestfish`), `qemu-utils`, `curl` und etwa 5 GB freiem Festplattenspeicher. Es werden weder KVM noch Root-Rechte benötigt. Internetzugang für Paketinstallationen (oder Erstellung mit `--offline`). |
| Wo sich der Builder befindet | Er wird mit jedem Release im Ordner `/opt/nexcmp/releases/<version>/share/templates/` auf dem Panel-Server ausgeliefert. Sie müssen ihn dort nicht ausführen: Kopieren Sie den Ordner einfach auf eine beliebige Linux-Maschine. |
| Webserver | Jeder HTTP(S)-Server, den die Secondary Storage-VM von CloudStack erreichen kann, um die fertige `.qcow2`-Datei zu veröffentlichen. Er muss nicht aus dem Internet erreichbar sein. |
| CloudStack | Ein Konto, das Vorlagen registrieren darf, sowie die ID Ihrer Zone und eines passenden Betriebssystemtyps. Siehe [CloudStack](https://nexcmp.com/de/docs/infrastructure/cloudstack/). |
| Proxmox VE | Cloud-init-Vorlagen-VMs mit dem QEMU Guest Agent, eine pro OS und pro Knoten. Siehe [Proxmox VE](https://nexcmp.com/de/docs/infrastructure/proxmox/). |
| Abhängig von | Zuerst verbundene [CloudStack](https://nexcmp.com/de/docs/infrastructure/cloudstack/) oder [Proxmox VE](https://nexcmp.com/de/docs/infrastructure/proxmox/). |

## Infrastruktur vorbereiten {#prepare-the-infrastructure}

### CloudStack: Eine Vorlage erstellen {#cloudstack-build-a-template}

Unterstützte Basis-Images (das Hersteller-Image wird heruntergeladen und seine Prüfsumme vor allen Änderungen verifiziert):

| Image | `--distro` | Login-Benutzer |
|---|---|---|
| Ubuntu 22.04 | `ubuntu-22.04` | `ubuntu` |
| Ubuntu 24.04 | `ubuntu-24.04` | `ubuntu` |
| Debian 12 | `debian-12` | `debian` |
| Rocky Linux 9 | `rocky-9` | `rocky` |

Weitere Distributionen: Fügen Sie eine Zeile zu `distros.conf` hinzu (Image-URL, Prüfsummendatei, Familie `deb` oder `rpm`).

1. Kopieren Sie den Builder auf eine Build-Maschine und führen Sie ihn aus:

   ```bash
   cp -r /opt/nexcmp/releases/<version>/share/templates ~/templates && cd ~/templates
   ./build-template.sh --distro ubuntu-24.04 --version v7 --work ./out
   ```

   Fügen Sie `--panel-url https://cloud.example.com` hinzu, um einen optionalen First-Boot-Überwachungsagenten zu integrieren, der sich bei Ihrem Panel registriert (nur HTTPS). Ohne diese Option wird kein Agent hinzugefügt. Weitere Optionen: `--base <file>`, um ein heruntergeladenes Image zu verwenden, `--offline`, um Paketinstallationen zu überspringen.

2. Das Ergebnis ist `out/ubuntu-24.04-v7.qcow2` und seine `.sha256`. Der Build endet mit der Ausführung von `verify-image.sh`, wodurch das fertige Image schreibgeschützt überprüft und fehlerhafte Images abgelehnt werden (sie werden als `.unverified` beibehalten). Sie können dies jederzeit erneut ausführen: `./verify-image.sh out/ubuntu-24.04-v7.qcow2 --no-agent`.

Was der Builder in das Image einfügt:

| Komponente | Grund |
|---|---|
| `qemu-guest-agent` | CloudStack kann die VM nach CPUs und IPs abfragen und sie für Snapshots anhalten. |
| cloud-init mit der CloudStack-Datenquelle, `set_passwords` bei jedem Systemstart, SSH-Passwort-Login | Das generierte Passwort wird vom Virtual Router abgerufen und **Reset password** funktioniert. |
| Eine udev-Regel für im laufenden Betrieb hinzugefügte CPU und RAM | Dynamisch hinzugefügte vCPUs und RAM nehmen von selbst den Betrieb auf, sodass Live-Skalierung und Auto Scaling funktionieren. |
| Ein Swap-Datei-Dienst | Erstellt `/swapfile` aus dem kleineren Wert von 50 % des RAM und 4 GiB, nachdem die Festplatte gewachsen ist. `touch /etc/cmp-swap.disabled` schaltet dies aus. |
| cloud-init `growpart` und `resizefs` | Die kleine Root-Festplatte wächst beim ersten Systemstart auf die Festplattengröße des Tarifs an. |
| Leere machine-id, keine SSH-Host-Schlüssel | Jede VM erhält ihre eigene Identität. |

::: warning Vorlage benennen: `<OS> <version> <vN>`
NexCMP schaltet **Auto Scaling** für Vorlagen ein, deren Name auf `vN` oder `vN.M` endet mit **N von 6 oder mehr** (`Ubuntu 24.04 v7`, `Rocky Linux 9 v7.1`). Der Builder erzwingt dies für `--version`. Registrieren Sie die Vorlage mit exakt dem ausgegebenen Namen.
:::

3. Veröffentlichen Sie die Datei und registrieren Sie sie in CloudStack. Verwenden Sie den vom Build ausgegebenen SHA-256-Wert und registrieren Sie sie erst, wenn die Datei vollständig geschrieben ist:

   ```bash
   cmk list ostypes keyword="Ubuntu 24.04" filter=id,description
   cmk register template name="Ubuntu 24.04 v7" displaytext="Ubuntu 24.04 v7" \
     url=https://files.example.com/ubuntu-24.04-v7.qcow2 zoneid=<zone-id> format=QCOW2 hypervisor=KVM \
     ostypeid=<os-type-id> passwordenabled=true sshkeyenabled=true isdynamicallyscalable=true \
     requireshvm=true isextractable=false ispublic=true isfeatured=true \
     checksum="{SHA-256}<sha256 of the file>" \
     details[0].guest.cpu.mode=host-passthrough details[0].rootDiskController=osdefault
   ```

   - `passwordenabled=true` lässt CloudStack das VM-Passwort generieren.
   - `isdynamicallyscalable=true` ermöglicht Live-Skalierung.
   - `host-passthrough` wird benötigt, damit aktuelle Rocky- und Alma-Images booten; `osdefault` hält den Festplattencontroller portabel.

4. Warten Sie, bis die Vorlage **Download Complete / Ready** erreicht.

Das Hersteller-Image behält seine geringe virtuelle Größe (ca. 3.5 GiB für Ubuntu und Debian, 10 GiB für Rocky). Denken Sie daran, dass die Festplatte eines Tarifs nicht kleiner sein darf als die des Templates.

### Proxmox VE: Vorlage erstellen {#proxmox-ve-make-a-template}

Erstellen Sie pro Betriebssystem auf jedem Bereitstellungsknoten eine Cloud-init-VM-Vorlage mit installierten Gastagenten und aktiviertem Root-Login, und registrieren Sie sie dann als `os-key=vmid`. Die vollständigen Befehle finden Sie unter [Proxmox VE](https://nexcmp.com/de/docs/infrastructure/proxmox/). Der CloudStack-Builder oben ist **nicht** für Proxmox gedacht: Er konfiguriert cloud-init für die CloudStack-Datenquelle.

### ISOs {#isos}

Kunden binden ihre eigenen ISOs über das Modul **Images** (CloudStack) oder das Modul für dedizierte Server ein. Diese sind von den Betriebssystemvorlagen auf dieser Seite getrennt. Siehe [Modules](https://nexcmp.com/de/docs/infrastructure/modules/) und [Dedicated servers](https://nexcmp.com/de/docs/infrastructure/dedicated/).

## In NexCMP verbinden {#connect-in-nexcmp}

1. Öffnen Sie **Services › Virtual Machines › Template**. Klicken Sie auf **Sync now** oder warten Sie bis zu 15 Minuten. Die Synchronisierung fügt Vorlagen hinzu, die in CloudStack bereit und als Featured markiert sind.

      ![Die Vorlagenseite listet synchronisierte Vorlagen mit deren Bereitschaftsstatus und der Spalte für CPU-Hot-Plugging auf](https://nexcmp.com/de/docs/images/infrastructure/templates-01-list.webp)

2. Klicken Sie bei einer neuen Vorlage auf **Edit** und legen Sie fest, was Kunden sehen:

   | Feld | Beispielwert |
   |---|---|
   | Anzeigename für Kunden | `Ubuntu 24.04 LTS` |
   | Betriebssystemfamilie | `ubuntu` (Symbol und Standardbenutzer) |
   | Version | `24.04` |
   | Anmeldename | `ubuntu` (Windows: `Administrator`; andere: `root`) |
   | Symbol | Bild-URL, Pfad oder Name |
   | Reihenfolge | `10` |
   | Aktiv | An |
   | vCPU-/RAM-Hot-Plugging (Live-Skalierung) | **Auto by name (v6 or later)**, **Yes** oder **No (needs a restart)** |

      ![Dialogfeld zum Bearbeiten der Vorlage mit kundenbezogenem Namen, Betriebssystemfamilie, Anmeldebenutzer und Hot-Plug-Option](https://nexcmp.com/de/docs/images/infrastructure/templates-02-edit.webp)

3. Schalten Sie die Vorlage ein. Eine Vorlage, die von CloudStack nicht mehr aufgelistet wird, wird automatisch ausgeblendet (und Sie werden bei entsprechender Konfiguration in Telegram benachrichtigt); sie wird niemals aus NexCMP gelöscht.

### Ein Template durch einen neueren Build ersetzen {#replace-a-template-with-a-newer-build}

Verwenden Sie **More › Replace with new version** beim verkauften Template. Wählen Sie das neue, bereits vorbereitete und aktuell deaktivierte Template aus. Der verkaufte Eintrag verweist dann auf den neuen Build und behält seinen Namen, seine Reihenfolge und sein Icon bei; das alte wird als Rückweg deaktiviert (um zurückzugehen, verwenden Sie **Replace** beim neuen Eintrag). Laufende VMs sind davon nicht betroffen. Wenn der neue Build eine andere Betriebssystemfamilie aufweist, aktivieren Sie zuvor das Bestätigungskästchen.

## Verifizierung {#verify}

1. Die Zeile zeigt **ready** und für Builds mit der Endung `vN` mit N von 6 oder mehr **CPU hot-plug: supported** an.
2. Deployen Sie eine Test-VM aus dem Template und überprüfen Sie diese innerhalb der VM:
   - Sie können sich mit dem im Portal angezeigten Passwort anmelden;
   - `df -h /` zeigt die Festplattengröße des Tarifs an;
   - nach einer Live-Skalierung (**Change plan** ohne Neustart) wachsen `nproc` und `free -m`;
   - `swapon --show` listet `/swapfile` auf (Datenträger mit weniger als Swap plus 2 GiB freiem Speicher überspringen dies);
   - `systemctl is-active qemu-guest-agent` gibt `active` aus.
3. Wenn Sie den Agenten integriert haben, erscheint die VM eine Minute nach dem ersten Start in den überwachten Hosts des Panels. Die VM benötigt eine eigene öffentliche IP: Das Panel erkennt sie an ihrer öffentlichen Quell-IP.

## Grenzwerte und Hinweise {#limits-and-notes}

- Der Builder ist nur für Linux verfügbar und erstellt Linux-Images. Andere Images (zum Beispiel Windows) können auf anderem Wege in CloudStack registriert werden; NexCMP listet auf, was CloudStack meldet.
- Es wird nur der amd64-Agent ausgeliefert; andere Architekturen überspringen die Agenteninstallation.
- Das Image wird mit `guestfish` überprüft, aber niemals vom Builder gebootet. Deployen Sie vor dem Verkauf eines neuen Images stets eine Test-VM.
- Überspringen Sie den Agenten auf einer VM vor dem ersten Start mit `touch /etc/cmp-agent.disabled`. Entfernen Sie ihn später mit `systemctl disable --now cmp-agent cmp-agent-install; rm -rf /etc/cmp-agent /usr/local/bin/cmp-agent` und löschen Sie den Agenten anschließend in der Admin-Konsole.

## Fehlerbehebung {#troubleshooting}

| Symptom | Ursache | Behebung |
|---|---|---|
| `virt-customize` kann Pakete nicht herunterladen | Die Build-Maschine hat keinen Netzwerkzugriff nach außen | Beheben Sie DNS oder Proxy auf dieser Maschine oder erstellen Sie den Build mit `--offline` auf einem Basis-Image, das die Pakete bereits enthält. |
| `libguestfs: error: /usr/bin/supermin exited with error status 1` | Der Host-Kernel ist für den aktuellen Benutzer nicht lesbar (Ubuntu) | `sudo chmod +r /boot/vmlinuz*` oder führen Sie den Build als root aus. |
| Prüfsumme weicht ab oder das Hersteller-Image existiert nicht mehr | Hersteller verschieben ihre „latest“-Dateien | Laden Sie das Image selbst herunter, überprüfen Sie es anhand der Prüfsummendatei des Herstellers und übergeben Sie es mit `--base`. |
| Rocky: Ein neueres XFS kann nicht gemountet werden | Der Host-Kernel ist zu alt | Erstellen Sie den Build auf einer Maschine mit einem aktuellen Kernel. |
| `--version must be v6 or higher` | Der Name muss `vN` mit N von 6 oder mehr sein | Verwenden Sie `--version v7`. |
| `--panel-url must be a plain https:// URL` | Der Agent wird heruntergeladen und als root ausgeführt, weshalb unverschlüsseltes HTTP abgelehnt wird | Verwenden Sie eine `https://`-URL ohne Leerzeichen, Anführungszeichen oder Abfragezeichenfolge. |
| Template bleibt **not ready** | CloudStack hat den Download noch nicht abgeschlossen | Warten Sie auf **Download Complete** und überprüfen Sie, ob die Secondary-Storage-VM die URL erreichen kann. |
| Zeile zeigt **no-pass** | Das Template wurde ohne `passwordenabled=true` registriert | Registrieren Sie es erneut mit diesem Flag. |
| CPU-Hotplug wird als **unsupported** angezeigt | Der Name endet nicht auf `vN` (N von 6 oder mehr) | Benennen Sie das Template um oder setzen Sie **vCPU/RAM hot-plug** unter Edit auf **Yes**, sofern das Image die udev-Regel enthält. |
| „Empty template list“ nach der ersten Verbindung | Die Synchronisierung wurde noch nicht ausgeführt | Klicken Sie auf **Sync now** (erfordert einen laufenden Worker) oder warten Sie auf den 15-minütigen Zyklus. |
