Drahtlose Netzwerke sind überall: Zu Hause, im Café und in der Firma. Im Gegensatz zu Kabelnetzen verliert der Admin bei WLANs allerdings schnell die ... (mehr)

Zugang auch per VNC

Den Remotedesktop zeigt unter Linux beispielsweise der VNC-Viewer mit »vncviewer 192.168.111.20:43948« an. So kann man dann per VNC herausfinden, welche IP-Adresse per DHCP vergeben wurde, wenn man keine statischen IP-Adressen verwendet oder sie im DHCP-Server für eine MAC-Adresse fix zugeordnet hat. Sinnvoll ist es in jedem Fall, sich eine strukturierte Lösung für das Management von IP-Adressen für die VMs auszudenken.

Per Default ist der VNC-Zugang übrigens nicht abgesichert. Man sollte einen SmartOS-Host also am besten nicht im Internet aufstellen. Für einzelne VMs setzt der Aufruf »vmadm update VM-UUID vnc_password=Passwort« ein Passwort.

Im Test gab es übrigens des öfteren das Problem, dass bei der VNC-Anzeige wichtige Zeichen nicht mit der Tastatur zu erzeugen waren, weil die Keymap nicht stimmte. Es ließ sich beheben, indem Qemu die passende Keymap als Parameter übergeben bekam. Der Befehl dafür, die Keymap bei einer VM einzustellen, lautet »vmadm update VM-UUID qemu_extra_opts="-k de"« .

Installation von OSs

Alternativ zu vorgefertigten Image-Templates kann man eigene Templates verwenden oder Betriebssysteme komplett neu installieren, etwa für Windows-VMs, für die es keine Templates gibt. Der dafür vorgesehene Weg besteht darin, zuerst eine neue VM ohne ein Template anzulegen und dann von einem Installationsmedium zu booten. Die dafür nötige JSON-Datei sieht fast genauso aus wie Listing 1, aber statt des Disk-Abschnitts trägt man die Größe der virtuellen Festplatte ein:

"disks": [
    {
      "boot": true,
      "model": "virtio",
      "size": 15000
    }
  ],

Damit die VM das Installationsmedium findet, kopiert man dessen ISO-Image in ihr Root-Verzeichnis, das in »/zones/VM-UUID/root« zu finden ist. Der »vmadm« -Befehl besitzt spezielle Optionen, um für die Installation einmalig die VM von diesem Image zu booten:

vmadm start VM-UUID order=cd,once=d cdrom=/centos.iso,ide

Jetzt kann man, etwa über VNC, das Betriebssystem wie bei einer physischen Maschine installieren und nach einem Reboot des Gasts die VM vom neuen System starten.

Wer eine CD oder DVD in den SmartOS-Rechner eingelegt hat, kann auch davon ein ISO-Image machen, um die VM damit zu booten. Das geht ganz einfach mit dem dd-Befehl von Unix:

dd if=/dev/dsk/c0t4d0s2 of= /zones/VM-UUID/root/centos.iso

Bleibt nur noch die Schwierigkeit, den Device-Namen des Laufwerks herauszufinden. Hierbei hilft der Befehl »iostat -En« .

Damit man nicht jedes Gastsystem einzeln installieren muss, kann man von einem System eigene Templates anlegen und sie für neue Instanzen verwenden. Dazu ist es nötig, die UUID der entsprechenden Maschine mit »vmadm list« in Erfahrung zu bringen. Ein Aufruf von »zfs list« zeigt die ZFS-Volumes, unter denen sich auch diejenigen der VM befinden (Abbildung 5). Ist die VM heruntergefahren, erstellt man mit »zfs snapshot« einen Snapshot des Gast-Volumes. Ein zweiter Schritt macht per »zfs send« aus dem Snapshot eine Datei und komprimiert sie.

Abbildung 5: Jede Menge ZFS-Volumes: SmartOS macht von den Snapshot-Fähigkeiten des Solaris-Dateisystems Gebrauch.
zfs snapshot zones/5562fffe-96b1-454e-aff0-6d8782875f2e-disk0@image
zfs send zones/5562fffe-96b1-454e-aff0-6d8782875f2e-disk0@image | gzip> centos6.5.zvol.gz

Ein komplettes VM-Template ist letztlich nichts anderes als eben ein solches komprimiertes Image zusammen mit einer Datei, die die Metadaten enthält – natürlich wieder im JSON-Format. Ein Beispiel dafür ist in Listing 3 zu sehen. Die meisten Einträge darin dürften selbsterklärend sein. Die UUIDs, die man zum Beispiel für »uuid« , »creator_uuid« und »vendor_uuid« eintragen muss, lassen sich mit dem Befehl »uuid« erzeugen. Die »size« der Disk zeigt »ls -l« an. Etwas schwieriger wird es mit dem SHA1-Hash. Ihn erzeugt das Digest-Kommando:

Listing 3

centos6.5.dsmanifest

 

/usr/bin/digest -a sha1 centos6.5.zvol.gz

Bei den Timestamps geht es nicht so genau, man kann sich auf die Anpassung des Datums beschränken. Ist die Manifest-Datei vollständig, importiert der folgende Aufruf das Template in den eigenen Store:

imgadm install -m centos6.5.dsmanifest -f centos6.5.zvol.gz

Anschließend steht das Template für die Erzeugung neuer VMs zur Verfügung.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019