VM-Vorlagen
VM-Vorlagen dienen in OpenVLE als Grundlage für die Erstellung virtueller Maschinen.
Sie enthalten eine vorinstallierte Systemumgebung mit allen notwendigen Tools und Diensten und werden meist im Rahmen von Umgebungen oder Veranstaltungen eingesetzt.
Durch Vorlagen lassen sich neue VMs schnell und konsistent bereitstellen.
Wo finde ich den Bereich?
Über das Hauptmenü: VM-Vorlagen
Alternativ erreichbar über: Über Virtuelle Maschinen oder Verbindungen verlinkt
Funktionen im Überblick
- Anzeigen, Erstellen, Bearbeiten und Löschen von VM-Vorlagen
- Importieren bestehender Templates aus Proxmox VE
- Verknüpfen von Vorlagen mit Betriebssystemen und Anwendungen
- Festlegen technischer Parameter wie CPU, RAM und Datenträgergröße
- Zuweisen von Metadaten (Tags) und Beschreibungen für eine bessere Organisation
Wichtige Felder im Überblick
| Feldname | Beschreibung |
|---|---|
Arbeitsspeicher | Arbeitsspeicher (RAM) in Gigabyte, der neuen VMs zugewiesen wird. Beeinflusst direkt die Performance der Maschinen. |
Beschreibung | Freitextfeld zur Dokumentation oder Kommentierung der VM-Vorlage. Unterstützt Markdown-Syntax (z. B. für Listen oder Hervorhebungen). |
Betriebssystem | Das zugrunde liegende Betriebssystem der Vorlage. Dieses wird für die automatische Konfiguration und Filterung im System verwendet. |
CPU | Anzahl der vCPUs, die VMs auf Basis dieser Vorlage erhalten. Der Wert bestimmt die Rechenleistung jeder erstellten Maschine. |
Name | Name der VM-Vorlage. Wird in der gesamten Oberfläche angezeigt und sollte eindeutig sowie aussagekräftig gewählt werden, z. B. „Debian12-Base“ oder „Windows10-Schulung“. |
Proxmox VE Infos | Systeminterne Zuordnungen zu Proxmox VE, bestehend aus der **VMID** (eindeutige ID auf dem Host) und dem **Node-Namen** (Hostsystem innerhalb des Clusters). Diese Felder werden automatisch gepflegt und sind schreibgeschützt. |
Importieren einer VM-Vorlage
Bereits auf dem Proxmox VE-Server vorhandene VM-Vorlagen können in OpenVLE importiert werden. Dadurch lassen sich bestehende Vorlagen direkt innerhalb von OpenVLE weiterverwenden.
Hierfür muss unter VM-Vorlagen → Importieren die Proxmox VMID der gewünschten Vorlage angegeben werden.
Anschließend werden die Vorlageninformationen automatisch vom Proxmox VE-Server geladen.
Diese importierten Daten können bei Bedarf angepasst werden – eine Anpassung ist jedoch in der Regel nicht erforderlich, außer beim Feld „Betriebssystem“.
Da der Proxmox VE-Server diese Information nicht exakt auslesen kann, muss sie manuell einmalig angegeben werden.
OpenVLE kann nur die VM-Vorlagen vom Proxmox VE-Server auslesen, für die der OpenVLE-API-Token im Proxmox VE-Cluster über entsprechende Berechtigungen verfügt.
Wenn die Berechtigungen des API-Tokens gemäß der Dokumentation eingerichtet wurden, kann OpenVLE nur VM-Vorlagen (und VMs) innerhalb des zugehörigen Proxmox-Pools einsehen.
Daher ist es zwingend erforderlich, die VM-Vorlagen im Proxmox VE-Server diesem Pool zuzuordnen.
Andernfalls führt der Import zu einem „VM-Vorlage nicht gefunden“-Fehler.
Erstellen einer VM-Vorlage
Die VM, die als Basis für die VM-Vorlage dienen soll, muss ausgeschaltet sein. Nur ausgeschaltete VMs können zu einer VM-Vorlage kopiert werden. Fahre die VM bei Bedarf vorher über OpenVLE herunter.
- Öffne im Hauptmenü den Bereich VM-Vorlagen.
- Klicke auf Hinzufügen, um eine neue VM-Vorlage zu erstellen.
- Wähle die gewünschte VM als Basis.
- Gib einen Namen für die VM-Vorlage an.
- Die restlichen Felder werden automatisch auf Basis der gewählten VM vorausgefüllt. Bei Bedarf können diese angepasst werden.
- Speichere die VM-Vorlage.
- Die VM-Vorlage wird nun im Hintergrund automatisch erstellt.
- Verwende diese VM-Vorlage, um neue virtuelle Maschinen zu erstellen oder Veranstaltungen vorzubereiten.
Beim Erstellen einer VM-Vorlage werden folgende Zuordnungen automatisch angelegt oder vererbt:
- Anwendungen ↔ VM: Alle der VM zugewiesenen Anwendungen werden automatisch auch der neuen VM-Vorlage zugewiesen.
- Verbindungsvorlagen ↔ VM: Alle Verbindungsvorlagen der VM werden kopiert und der VM-Vorlage zugewiesen.
Bearbeiten einer VM-Vorlage
- Öffne im Hauptmenü den Bereich VM-Vorlagen.
- Suche in der Liste nach der gewünschten VM-Vorlage.
- Klicke auf Bearbeiten oder öffne das Kontextmenü der VM-Vorlage und wähle Bearbeiten.
- Im Formular werden alle aktuellen VM-Vorlagen-Daten angezeigt.
- Passe die gewünschten Felder an – z. B. Name, Beschreibung, CPU, Arbeitsspeicher oder Betriebssystem.
- Speichere die Änderungen.
- Die Aktualisierung wird im Hintergrund übernommen.
Änderungen an VM-Vorlagen wirken sich nicht auf bereits erstellte VMs aus.
Löschen einer VM-Vorlage
- Öffne im Hauptmenü den Bereich VM-Vorlagen.
- Suche in der Liste nach der gewünschten VM-Vorlage.
- Klicke auf Löschen oder öffne das Kontextmenü der VM-Vorlage und wähle Löschen.
- Bestätige den Löschvorgang im angezeigten Dialog.
- Die VM-Vorlage wird daraufhin dauerhaft entfernt.
- Nach Abschluss des Vorgangs verschwindet die VM-Vorlage aus der Übersicht.
Beim Löschen einer VM-Vorlage werden auch alle damit verknüpften Verbindungsvorlagen automatisch gelöscht.
Dieser Vorgang kann nicht rückgängig gemacht werden.
Anforderungen an VM-Vorlagen
Damit OpenVLE korrekt mit den einzelnen virtuellen Maschinen kommunizieren kann, müssen bei der Erstellung von VM-Vorlagen einige Voraussetzungen erfüllt sein.
Für alle Vorlagen, unabhängig vom Betriebssystem, gilt:
- Qemu Guest Agent muss installiert und aktiviert sein (innerhalb der VM und auf dem PVE-Host).
- Cloud-Init muss installiert und aktiviert sein, damit OpenVLE Automatisierungen wie Anmeldungen und Netzwerkkonfigurationen steuern kann.
Die meisten Anforderungen müssen nur einmal für die jeweilige Master-Vorlage pro Betriebssystem umgesetzt werden.
Alle weiteren VMs oder Vorlagen, die darauf basieren, übernehmen die Einstellungen automatisch.
Die folgenden Schritte sind noch nicht vollständig dokumentiert.
Die Anleitungen für Linux sind weitgehend getestet, während die Windows-Konfiguration noch erweitert wird.
Einmalige Einrichtung
Diese Schritte müssen nur einmal pro Betriebssystem und Master-Vorlage durchgeführt werden:
- Debian/Ubuntu
- Arch Linux
- RHEL/CentOS/Fedora
- OpenSUSE
- Windows
- Andere
sudo apt update
sudo apt install qemu-guest-agent cloud-init
sudo pacman -Syu
sudo pacman -S qemu-guest-agent cloud-init
sudo dnf update
sudo dnf install qemu-guest-agent cloud-init
sudo zypper refresh
sudo zypper install qemu-guest-agent cloud-init
- VirtIO-Treiber installieren und konfigurieren
- Qemu Guest Agent installieren und aktivieren
- Cloudbase-Init installieren und aktivieren
- BitLocker deaktivieren (
manage-bde -off C:) - Überflüssige Windows Store Apps entfernen
Die Pakete qemu-guest-agent und cloud-init müssen installiert und
konfiguriert sein. Bitte konsultiere die offizielle Dokumentation des
Betriebssystems, um die entsprechenden Befehle zur
Installation und Aktualisierung zu finden.
Vorbereitung vor der Konvertierung
Diese Schritte müssen jedes Mal durchgeführt werden, bevor eine VM in eine Vorlage umgewandelt wird:
- Debian/Ubuntu
- Arch Linux
- RHEL/CentOS/Fedora
- OpenSUSE
- Windows
- Andere
su root
rm -rf /etc/cloud/cloud-init.disabled /tmp/* /var/tmp/*
apt clean && apt autoclean
cloud-init clean
truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
find /var/log -type f -exec truncate -s 0 {} \;
find /var/log -type f -regex ".*\.log\.[0-9]*\(\.gz\)?$" -delete
find /var/log -type f -name "*.log.*.gz" -delete
find / -name *.bash_history -exec rm -f {} \;
find / -name *.sh_history -exec rm -f {} \;
find / -name *.zsh_history -exec rm -f {} \;
find / -name known_hosts -exec rm -f {} \;
history -c
su root
rm -rf /etc/cloud/cloud-init.disabled /tmp/* /var/tmp/*
pacman -Sc && pacman -Scc
cloud-init clean
truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
find /var/log -type f -exec truncate -s 0 {} \;
find /var/log -type f -regex ".*\.log\.[0-9]*\(\.gz\)?$" -delete
find /var/log -type f -name "*.log.*.gz" -delete
find / -name *.bash_history -exec rm -f {} \;
find / -name *.sh_history -exec rm -f {} \;
find / -name *.zsh_history -exec rm -f {} \;
find / -name known_hosts -exec rm -f {} \;
history -c
su root
rm -rf /etc/cloud/cloud-init.disabled /tmp/* /var/tmp/*
dnf clean all && dnf autoremove
cloud-init clean
truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
find /var/log -type f -exec truncate -s 0 {} \;
find /var/log -type f -regex ".*\.log\.[0-9]*\(\.gz\)?$" -delete
find /var/log -type f -name "*.log.*.gz" -delete
find / -name *.bash_history -exec rm -f {} \;
find / -name *.sh_history -exec rm -f {} \;
find / -name *.zsh_history -exec rm -f {} \;
find / -name known_hosts -exec rm -f {} \;
history -c
su root
rm -rf /etc/cloud/cloud-init.disabled /tmp/* /var/tmp/*
zypper clean && zypper clean --all
cloud-init clean
truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
find /var/log -type f -exec truncate -s 0 {} \;
find /var/log -type f -regex ".*\.log\.[0-9]*\(\.gz\)?$" -delete
find /var/log -type f -name "*.log.*.gz" -delete
find / -name *.bash_history -exec rm -f {} \;
find / -name *.sh_history -exec rm -f {} \;
find / -name *.zsh_history -exec rm -f {} \;
find / -name known_hosts -exec rm -f {} \;
history -c
wevtutil cl System
wevtutil cl Application
wevtutil cl Security
Clear-History
Das Paket cloud-init muss zurückgesetzt werden, sodass es beim nächsten Start korrekt durchläuft.
Zudem wird empfohlen, die Log-Einträge, die Paket-Caches, Shell-Verläufe, SSH-Keys und die Machine-ID zu löschen bzw. zu leeren.
Bitte konsultiere die offizielle Dokumentation des Betriebssystems, um die entsprechenden Befehle zur Konfiguration zu finden.
Nach Abschluss dieser Schritte kann die VM heruntergefahren und in eine VM-Vorlage konvertiert werden.
Beispiel oder Anwendungsfall
Eine Systemverwaltungsperson möchte eine neue Debian-Vorlage für Schulungsumgebungen erstellen. Diese Person installiert innerhalb der VM den Qemu Guest Agent und Cloud-Init, führt die Bereinigungsbefehle durch und konvertiert die Maschine anschließend in eine Vorlage. Danach kann diese Vorlage in OpenVLE verwendet werden, um schnell neue VMs für Veranstaltungen oder Tests bereitzustellen.
Hinweise / Besonderheiten
-
VM-Vorlagen bilden die Grundlage für alle automatisiert erstellten virtuellen Maschinen in OpenVLE.
Änderungen an einer VM-Vorlage wirken sich nicht rückwirkend auf bereits erstellte VMs aus. -
Beim Erstellen oder Importieren einer VM-Vorlage wird im Hintergrund ein Task gestartet.
Du kannst den Fortschritt und mögliche Fehlermeldungen im Bereich System → Tasks nachvollziehen. -
Eine VM-Vorlage kann nur dann erfolgreich importiert oder erstellt werden, wenn der Qemu Guest Agent und Cloud-Init innerhalb des Systems korrekt eingerichtet sind.
-
Wenn eine VM-Vorlage gelöscht wird, werden alle damit verknüpften Verbindungsvorlagen automatisch entfernt.
Dies kann nicht rückgängig gemacht werden. -
Importierte VM-Vorlagen werden automatisch mit den zugehörigen Proxmox VE-Informationen verknüpft (Node, VMID).
Diese Felder sind schreibgeschützt und dienen der Synchronisierung mit dem Cluster. -
Änderungen an CPU, RAM oder Betriebssystem wirken sich erst auf neu erstellte virtuelle Maschinen aus, die auf Basis der aktualisierten VM-Vorlage erstellt werden.
-
VM-Vorlagen, die in Proxmox VE außerhalb des dem OpenVLE-API-Token zugewiesenen Pools liegen, können nicht importiert werden.
Stelle daher sicher, dass alle relevanten Vorlagen korrekt zugeordnet sind. -
Für eine einheitliche Verwaltung empfiehlt es sich, pro Betriebssystem eine Master-Vorlage zu pflegen, die regelmäßig aktualisiert wird (z. B. mit Sicherheitspatches oder Software-Updates).
Neue VM-Vorlagen können anschließend aus dieser Master-Vorlage abgeleitet werden. -
Bei der Konvertierung einer VM in eine VM-Vorlage wird empfohlen, vorher ein Bereinigungsskript (siehe Abschnitt Vorbereitung vor der Konvertierung) auszuführen, um Maschinenkennungen, Logdateien und SSH-Schlüssel zu entfernen.
-
Die Anzeige der VM-Vorlagen aktualisiert sich regelmäßig automatisch, solange der Bereich geöffnet ist.
Beziehungen zu anderen Objekten
Viele Objekte in OpenVLE stehen in Beziehung zu anderen Elementen innerhalb des Systems. Die folgende Übersicht zeigt, welche Verknüpfungen bestehen und ob diese bestimmte Automatisierungen auslösen.
| Objekt | Beschreibung | Automatisches Verhalten |
|---|---|---|
| Anwendungen | Einer VM-Vorlage können beliebig viele Anwendungen zugewiesen werden. | Keine Automatisierungen. |
| Berechtigungen | Objektspezifische Berechtigungen können direkt am Objekt vergeben werden. | Automatisches Entfernen beim Löschen des Objekts. |
| Betriebssystem | Einer VM-Vorlage kann genau ein Betriebssystem zugewiesen werden. | Keine Automatisierungen. |
| Changelogs | Alle Änderungen am Objekt werden automatisch protokolliert. | Automatisches Entfernen beim Löschen des Objekts. |
| Tags | Objekte können mit beliebig vielen Tags versehen werden, um sie zu kategorisieren oder zu filtern. | Automatisches Entfernen beim Löschen des Objekts. |
| Tasks | Systeminterne Aufgaben, die bei Aktionen (z. B. Starten, Stoppen oder Klonen) automatisch erstellt und überwacht werden. | Automatische Erstellung bei bestimmten Prozessen oder Aktionen. |
| Verbindungsvorlagen | Einer VM-Vorlage können beliebig viele Verbindungsvorlagen zugewiesen werden. | Automatisches Löschen beim Entfernen der VM-Vorlage. |
Erforderliche Berechtigungen
Die für Aktionen benötigten Berechtigungen können über Rollen oder individuell vergeben werden. Fehlen Ihnen bestimmte Rechte, sind die entsprechenden Funktionen in der Benutzeroberfläche ausgeblendet oder deaktiviert.
| Aktion | Benötigte Berechtigung | Pfad | Weitere Informationen |
|---|---|---|---|
| VM-Vorlagen anzeigen | templates_read | / oder /<objectID> | |
| VM-Vorlagen anlegen | templates_create | / | |
| VM-Vorlagen bearbeiten | templates_update | / oder /<objectID> | |
| VM-Vorlagen löschen | templates_delete | / oder /<objectID> | |
| Virtuelle Maschinen anzeigen | vms_read | / |
Beispiel:
/4a3bc312-d1af-4b3f-b222-f5e9cecbf007 – So erhält der Benutzer nur Zugriff auf dieses eine Objekt.Wird als Pfad / verwendet, gilt die Berechtigung global für alle Objekte dieses Typs.
Für *_create-Berechtigungen ist nur der globale Pfad / zulässig.