← Zurück zur Knowledge Base

Eigenes Master-Set erstellen

Mit einem eigenen Master-Set lassen sich selbst erstellte virtuelle Maschinen in smartlearn für Piloten, Varianten und Durchführungen verwenden. Die Master-VMs werden im vCenter der smartlearn-Instanz erstellt und anschliessend auf der smartlearn-Appliance importiert.

In diesem Artikel steht <set> für den Namen des eigenen Master-Sets, z. B. vm-p-mas-<set> für den VM-Ordner. <Host> ist der ESXi-Host, auf dem die Netzwerke des Master-Sets liegen, <Datenspeicher> der Datenspeicher für die Master-VMs.

Master-Sets in smartlearn

Ein Master-Set ist ein VM-Ordner im vCenter. Er fasst die Master-VMs und die zugehörigen Netzwerke zusammen. smartlearn erkennt Ordner, VMs und Netzwerke ausschliesslich über benutzerdefinierte Attribute (smartlearn.*). Objekte ohne diese Attribute werden beim Import ignoriert.

Einfache und komplexe Master-Sets

Das Attribut smartlearn.master_set.single_machine am Ordner legt den Typ fest.

Typsingle_machineInhaltZugriffNetzwerk
EinfachtrueWindows-Haupt-VM und FirewallEin RDP-Stream auf die Haupt-VM, kein Zugriff auf die FirewallEigenes NAT-Netz lan0 hinter der Firewall
KomplexfalseMeist mehrere VMs, z. B. für IT-Lernumgebungen (DHCP, DNS, SMB konfigurieren)VMRC pro VMEigene Netze lan0–lan3, dmz0

Dieser Artikel beschreibt ein komplexes Master-Set.

Ein einfaches Master-Set besteht aus einer Firewall und der Haupt-VM. Die Haupt-VM hängt nur am NAT-Netz pg-p-mas-<set>-lan0. Die Firewall verbindet dieses Netz mit VM Network und Transfer Network; der RDP-Stream erreicht die Haupt-VM über die Firewall.

Vom Master zur Durchführung

  1. Pilot: Aus den Master-VMs entsteht eine Prüfungs- oder Lernumgebungsvorlage (siehe Pilot erstellen). smartlearn klont dafür jede Master-VM ab dem Snapshot, der beim letzten Import eingelesen wurde.
  2. Variante: Aus dem Piloten entstehen Varianten, z. B. Prüfung SQL-Injections Frühling (siehe Variante erstellen).
  3. Durchführung: Aus einer Variante entstehen Durchführungen, z. B. Prüfung SQL-Injections Klasse 3A (siehe Durchführung erstellen).

Da smartlearn vom eingelesenen Snapshot klont und nicht vom aktuellen Zustand der Master-VM, kann die Master-VM jederzeit weiterentwickelt werden. Bestehende Piloten, Varianten und Durchführungen bleiben davon unberührt. Nach Abschluss der Arbeiten wird ein neuer Snapshot erstellt und erneut importiert. Neue Piloten verwenden ab dann diesen Stand.

Konfigurations-ISO

Jede Master-VM hat ein CD-Laufwerk. Im Master liegt dort der Platzhalter base.iso. Beim Klonen ersetzt smartlearn ihn durch ein eigenes ISO pro VM mit der Datei SMARTLRN.YML. Die Datei enthält Angaben zur Umgebung, zu den Teilnehmenden und zum Netzwerk der VM. Ein Script im Gast kann sie beim Start auslesen, z. B. um Hostnamen, Benutzerkonten oder IP-Adressen zu setzen. Details im Artikel Konfigurations-ISO (SMARTLRN.YML).

Aufbau eines Master-Sets

Ein komplexes Master-Set besteht aus einem VM-Ordner und einem gleichnamigen Netzwerkordner:

<Datacenter>
├── vm/vm-p-mas/vm-p-mas-<set>/          ← Master-Set (VM-Ordner)
│   ├── vm-p-mas-<set>-<vm1>             ← Master-VMs
│   └── vm-p-mas-<set>-<vm2>
└── network/vs-p-mas/vs-p-mas-<set>/     ← Netzwerke des Master-Sets
    ├── pg-p-mas-<set>-lan0
    ├── pg-p-mas-<set>-lan1
    ├── pg-p-mas-<set>-lan2
    ├── pg-p-mas-<set>-lan3
    └── pg-p-mas-<set>-dmz0

Der Netzwerkordner heisst gleich wie der VM-Ordner, nur mit vs- statt vm-. Darüber ordnet smartlearn die Netzwerke dem Master-Set zu.

VM-Ordner

Der Ordner vm-p-mas-<set> liegt direkt unter vm-p-mas und trägt die folgenden Attribute:

Master-Set-Ordner mit Attributen
AttributBeispielBedeutung
smartlearn.master_set.nameInformatikName des Master-Sets in smartlearn
smartlearn.master_set.enabledfalsetrue = in der Piloterstellung auswählbar
smartlearn.master_set.single_machinefalsefalse = komplexes, true = einfaches Master-Set

Solange die Master-VMs nicht fertig sind, steht enabled auf false.

Netzwerke

Die PortGroups hängen an einem eigenen Standard-Switch vs-p-mas-<set> auf dem <Host>. Der Switch hat keine Verbindung nach aussen. Traffic nach aussen läuft über die Firewall des jeweiligen Master-Sets, die zusätzlich am VM Network hängt.

Jede PortGroup trägt die folgenden Attribute:

AttributBeispiel lan0Bedeutung
smartlearn.network.namelan0Netzname in smartlearn (lan0–lan3, dmz0)
smartlearn.master_network.cidr192.168.110.0/24Adressbereich
smartlearn.master_network.gateway192.168.110.1Gateway
smartlearn.master_network.dns192.168.110.1DNS-Server
smartlearn.master_network.domainsmartlearn.lanDomäne

Beispiel für einen vollständigen Satz Netzwerke:

PortGroupsmartlearn-NameVLANNetzGatewayDNSDomäne
pg-p-mas-<set>-lan0lan0110192.168.110.0/24192.168.110.1192.168.110.1smartlearn.lan
pg-p-mas-<set>-lan1lan1111192.168.111.0/24192.168.111.1192.168.111.1smartlearn.lan1
pg-p-mas-<set>-lan2lan2112192.168.112.0/24192.168.112.1192.168.112.1smartlearn.lan2
pg-p-mas-<set>-lan3lan3113192.168.113.0/24192.168.113.1192.168.113.1smartlearn.lan3
pg-p-mas-<set>-dmz0dmz0120192.168.120.0/24192.168.120.18.8.8.8smartlearn.dmz

Gateway und DNS existieren nur, wenn eine VM des Master-Sets (z. B. eine Firewall) diese Adresse übernimmt.

Zusätzlich gibt es zwei Netzwerke, die alle Master-Sets teilen:

Netzwerksmartlearn-NameZweck
VM Networkwan0Verbindung ins Schulnetz / Internet
Transfer Networksml0Anbindung der Firewall für den RDP-Stream bei einfachen Master-Sets

Installations-ISO hochladen

Das Installationsmedium des Betriebssystems muss auf einem Datenspeicher liegen, den der <Host> sieht.

  1. Im vSphere Client auf die Ansicht Speicher wechseln (drittes Symbol oben links).
  2. <Datenspeicher> › Register Dateien › Zielordner öffnen.
  3. Dateien hochladen und das ISO auswählen.

Der Upload läuft über den Browser. Der Tab muss offen bleiben, bis der Vorgang unter Kürzlich bearbeitete Aufgaben abgeschlossen ist.

VM anlegen

  1. Ansicht VMs und Vorlagen (zweites Symbol oben links) › <Datacenter> › vm-p-mas aufklappen.
  2. Rechtsklick auf vm-p-mas-<set> › Neue virtuelle Maschine…
Kontextmenü des Master-Set-Ordners
  1. Erstellungstyp: Neue virtuelle Maschine erstellen.
  2. Name und Ordner: VM-Namen eingeben (siehe Namensschema für Master-VMs). Im Baum darunter muss vm-p-mas-<set> ausgewählt sein. Nur VMs direkt in diesem Ordner gehören zum Master-Set.
Name der VM
Zielordner des Master-Sets
  1. Computing-Ressource: den jeweiligen ESXi-Host (<Host>) wählen, auf dem die Netzwerke des Master-Sets liegen. Nur dort stehen sie der VM zur Verfügung.
Host auswählen
  1. Speicher: den jeweiligen Datenspeicher (<Datenspeicher>) wählen, der für die Master-VMs vorgesehen ist.
Datenspeicher auswählen
  1. Kompatibilität: Vorgabe belassen.
  2. Gastbetriebssystem: Familie und Version passend zum Betriebssystem.
Gastbetriebssystem
  1. Hardware anpassen:
    • CPU, Arbeitsspeicher: Standardwerte für Piloten. In smartlearn lassen sie sich pro Maschine anpassen.
    • Neue Festplatte: Grösse festlegen, Zeile aufklappen, Festplattenbereitstellung auf Thin Provision setzen.
    • Neues Netzwerk: Auswahlfeld › Durchsuchen… › nach <set> filtern › PortGroup wählen.
    • Weitere Netzwerkadapter: Neues Gerät hinzufügen › Netzwerkadapter. Der erste Adapter ist ethernet-0, der zweite ethernet-1 usw. Auf diese Namen beziehen sich die Attribute. Ausgewertet werden ethernet-0 bis ethernet-3.
    • Neues CD-/DVD-Laufwerk: Datenspeicher-ISO-Datei › Installations-ISO auswählen, Beim Einschalten verbinden aktivieren.
Netzwerk auswählen
Neues Gerät hinzufügen
ISO auswählen
Hardware mit Netzwerk und CD-Laufwerk
  1. Erweiterte Parameter: Für Copy/Paste zwischen Arbeitsplatz und VM über Parameter hinzufügen die folgenden Einträge ergänzen:
AttributWert
isolation.tools.copy.disableFALSE
isolation.tools.paste.disableFALSE
isolation.tools.setGUIOptions.enableTRUE

Bei bestehenden VMs: Einstellungen bearbeiten… › Erweiterte Parameter.

  1. Zusammenfassung prüfen › Beenden.
Zusammenfassung
Übersicht der neuen VM

WICHTIG!

  • Die Netzwerke des Master-Sets existieren nur auf dem <Host> mit dem Standard-Switch vs-p-mas-<set>. VMs auf anderen Hosts können sie nicht verwenden.
  • smartlearn importiert nur VMs mit einem Windows- oder Linux-Gasttyp (Debian, Ubuntu, Red Hat, andere Linux, FreeBSD). VMs mit Andere werden ignoriert.
  • Das CD-Laufwerk ist Pflicht und darf nach der Installation nicht entfernt werden (siehe Konfigurations-ISO (SMARTLRN.YML)).
  • Feste MAC-Adressen müssen mit dem Präfix 00:50:56 beginnen (für VMware reserviert).

Betriebssystem installieren

  1. VM einschalten (▷) und über Web-Konsole starten oder Remote Console starten das Betriebssystem installieren.
  2. VMware Tools installieren:
    • Linux: Paket open-vm-tools
    • Windows: Aktionen › Gastbetriebssystem › VMware Tools installieren
  3. VM so einrichten, wie sie in Piloten zur Verfügung stehen soll: Benutzer, Software, Netzwerkkonfiguration, Material.
  4. Die IP-Adresse im Gast entspricht dem Attribut ethernet-N.ip_address, oder der Adapter bezieht DHCP. smartlearn konfiguriert die IP nicht selbst.
  5. VM herunterfahren.

base.iso einlegen

Nach der Installation wird das Installations-ISO durch den Platzhalter base.iso ersetzt.

  1. Rechtsklick auf die VM › Einstellungen bearbeiten…
  2. CD-/DVD-Laufwerk 1 aufklappen.
  3. CD-/DVD-Medien: Durchsuchen… › <Datenspeicher> › iso › base.iso.
  4. Beim Einschalten verbinden muss aktiv sein.
  5. OK.

Ergebnis: [<Datenspeicher>] iso/base.iso, Beim Einschalten verbinden aktiv.

Master-Attribute

Die Attribute werden auf der Übersicht der VM in der Karte Benutzerdefinierte Attribute über Bearbeiten gesetzt. Die Liste ist über mehrere Seiten verteilt (Pfeile unten rechts). Leere Werte gelten als nicht gesetzt.

Attribute bearbeiten
AttributBeispielBedeutung
smartlearn.master.nameli244-vmLFName der VM in smartlearn. Ohne diesen Wert wird die VM nicht importiert
smartlearn.master.descriptionUbuntu 24.04 LTSBeschreibung in smartlearn
smartlearn.master.connectionvmrc / rdpZugriff auf die VM. Komplexes Master-Set: immer vmrc (Standard). Einfaches Master-Set: rdp für die Haupt-VM
smartlearn.master.configurabletrue / falsetrue = smartlearn legt beim Klonen das Konfigurations-ISO ein. Standard false
smartlearn.master.preconfiguredtrue / falsetrue = VM kommt pro Umgebung nur einmal vor. Name, Ressourcen, Netzwerk und Berechtigungen sind in smartlearn nicht änderbar. false = mehrfach verwendbar, nummeriert (name1, name2) und anpassbar
smartlearn.master.usernamevmadminAngezeigter Benutzername. Standard vmadmin (Windows), root (Linux), vyos (Name beginnt mit vy)
smartlearn.master.passwordsml12345Passwort zum Benutzer
smartlearn.master.uploadpath/home/vmadmin/Zielordner für Datei-Uploads in die VM
smartlearn.master.filetransferpathC:\Users\Public\Desktop\Abgabe\Standardpfad für die Abgabe von Dateien. Kann pro Abgabeblock angepasst werden (siehe Abgabeblöcke)
smartlearn.master.ethernet-N.dhcptrue / falseAdapter N bezieht DHCP
smartlearn.master.ethernet-N.ip_address192.168.110.20Feste IP von Adapter N, falls dhcp nicht true ist

N steht für 0 bis 3, entsprechend der Reihenfolge der Netzwerkadapter.

Beispiel Linux-Server

smartlearn.master.name                   li244-vmLS
smartlearn.master.description            Ubuntu 24.04 Server
smartlearn.master.connection             vmrc
smartlearn.master.configurable           true
smartlearn.master.preconfigured          true
smartlearn.master.username               vmadmin
smartlearn.master.password               sml12345
smartlearn.master.uploadpath             /home/vmadmin/
smartlearn.master.ethernet-0.dhcp        false
smartlearn.master.ethernet-0.ip_address  192.168.110.20

Beispiel Windows-Client

smartlearn.master.name                   wiv11-vmWP
smartlearn.master.description            Windows 11 Client
smartlearn.master.connection             vmrc
smartlearn.master.configurable           true
smartlearn.master.preconfigured          false
smartlearn.master.username               vmadmin
smartlearn.master.password               sml12345
smartlearn.master.uploadpath             C:\Users\vmadmin\Desktop\
smartlearn.master.filetransferpath       C:\Users\Public\Desktop\Abgabe\
smartlearn.master.ethernet-0.dhcp        false
smartlearn.master.ethernet-0.ip_address  192.168.110.10

Snapshot erstellen

Der Import liest den aktuellen Snapshot der Master-VM ein. Von diesem Snapshot klont smartlearn beim Erstellen eines Piloten. VMs ohne Snapshot werden nicht importiert.

  1. VM ausgeschaltet.
  2. Register Snapshots › Snapshot erstellen…
  3. Name: Datum und Laufnummer, z. B. JJJJ-MM-TT-01.
  4. Beschreibung: Änderungen seit dem letzten Snapshot.
  5. Arbeitsspeicher einbeziehen und Gast-Dateisystem stilllegen bleiben leer.
  6. Erstellen.
Snapshot erstellen
Snapshot erstellt

Für eine neue Version der Master-VM: VM einschalten, anpassen, herunterfahren, base.iso kontrollieren, neuen Snapshot erstellen und erneut importieren. Alte Snapshots nur nach Rücksprache mit whatwedo löschen.

Master-Set aktivieren

Solange smartlearn.master_set.enabled auf false steht, ist das Master-Set in der Piloterstellung nicht auswählbar.

  1. Ordner vm-p-mas-<set> auswählen.
  2. Karte Benutzerdefinierte Attribute › Bearbeiten.
  3. smartlearn.master_set.enabled auf true setzen › Speichern.
Attribute des Master-Set-Ordners

Die Änderung wird mit dem nächsten Import wirksam.

Master-Set importieren

Nach jeder Änderung an VMs, Attributen oder Snapshots muss das Master-Set importiert werden. Der nachfolgende Command muss auf der smartlearn-Appliance ausgeführt werden.

smartlearn virtualization:master:import

Der Command zeigt zuerst den aktuellen Stand, liest danach das vCenter (Reading vSphere data (may take up to 5 minutes) …) und zeigt unter Changes to machines alle Änderungen. Neue Zeilen sind grün, geänderte Werte gelb. Eine leere Tabelle bedeutet, dass sich seit dem letzten Import nichts geändert hat.

 Master-Set   Status    VM                           smartlearn Name   Display   Snapshot          CPU      RAM       KS    Networking
 Informatik   Enabled   vm-p-mas-<set>-wiv25-vmWS    wiv25-vmWS        VMRC      snapshot-188359   2 vCPU   4096 MB   ISO   lan0: 192.168.110.50
SpalteInhalt
Master-SetWert von smartlearn.master_set.name
StatusEnabled, Disabled (Master-Set inaktiv) oder Deleted (VM nicht mehr vorhanden)
VMName der VM im vCenter
smartlearn NameWert von smartlearn.master.name
DisplayVMRC oder RDP
SnapshotID des eingelesenen Snapshots
CPU, RAMWerte der Master-VM
KSISO bei configurable=true, sonst Disabled. Faulty: kein CD-Laufwerk
NetworkingPro Adapter Netzwerk und IP, z. B. lan0: 192.168.110.20 oder lan0: DHCP

Abschliessend fragt der Command:

 Do you want to save these changes? (yes/no) [yes]:

Mit yes werden die Änderungen gespeichert, mit no verworfen (Canceled, no changes were made.).

Dos und Don’ts

Bekannte Stolpersteine bei Änderungen an einem Master-Set, das bereits verwendet wird.

NichtFolgeStattdessen
Master-VM löschen und unter demselben Namen neu erstellensmartlearn hat Namen und Snapshots der alten VM zwischengespeichert, was zu Fehlern führtNeues Master-Set erstellen und diese Version importieren
Netzwerke zu einem Master-Set hinzufügen, das bereits verwendet wirdDas Netzwerk wird beim Klonen dieser VM in bestehenden Umgebungen nachträglich erstelltNeues Master-Set erstellen und diese Version importieren

Änderungen innerhalb einer bestehenden Master-VM (Software, Konfiguration) sind dagegen unproblematisch: VM anpassen, neuen Snapshot erstellen und den Import erneut ausführen.

Fehlersuche

Im Verbose-Modus gibt der Import aus, weshalb eine VM nicht zum Import vorgeschlagen wird, z. B. Possible VM-Box: … does not have a snapshot oder … does not have "smartlearn.master.name" tag.

smartlearn virtualization:master:import -vvv
SymptomUrsache / Lösung
VM fehlt in der ÜbersichtKein Snapshot, smartlearn.master.name leer, Gasttyp nicht Windows/Linux oder VM nicht direkt im Master-Set-Ordner
Master-Set fehltsmartlearn.master_set.name am Ordner leer
Skipping VM import of master-set …: no networks foundNetzwerkordner fehlt oder heisst nicht passend zum VM-Ordner
Networking zeigt ethernet-N: reconfiguredAdapter hängt an einer PortGroup, die nicht im Netzwerkordner des Master-Sets liegt
KS zeigt Faultyconfigurable=true, aber kein CD-Laufwerk vorhanden
Keine SMARTLRN.YML im GastBeim Einschalten verbinden war beim Snapshot nicht aktiv oder configurable ist nicht true
Netzwerk des Master-Sets nicht auswählbarVM liegt auf einem anderen Host als der Standard-Switch des Master-Sets
Änderung in smartlearn nicht sichtbarKein neuer Snapshot oder Import nicht ausgeführt bzw. mit no beendet

Checkliste

Pro Master-VM:

  • Liegt direkt in vm-p-mas/vm-p-mas-<set>
  • Auf dem <Host> des Master-Sets, Festplatte Thin Provision
  • Gasttyp Windows oder Linux
  • Netzwerkadapter an pg-p-mas-<set>-*, VM Network oder Transfer Network
  • VMware Tools installiert
  • CD-Laufwerk mit base.iso, Beim Einschalten verbinden aktiv
  • smartlearn.master.name und weitere Master-Attribute gesetzt
  • Heruntergefahren, Snapshot erstellt

Pro Master-Set:

  • VM-Ordner und Netzwerkordner mit Attributen vorhanden
  • smartlearn.master_set.enabled = true
  • Import auf der smartlearn-Appliance ausgeführt und mit yes gespeichert