Skip to content
This repository has been archived by the owner on Apr 23, 2021. It is now read-only.
Jochen Klar edited this page Mar 27, 2016 · 14 revisions

Diese Anleitung ist lediglich für die Administratoren des Host-Systems. Dies muss nicht von den Labs getätigt werden.

Konzept

  • einzelne VMs für Labs/einzelne Projekte der Labs - je nachdem, wie es vom Lab gewünscht ist (im #codeforde-server Slack-Channel anfragen)
  • Port-Forwarding nur für SSH an die VM - die Anwendung selbst soll dann über Nginx laufen, damit z.B. das SSL-Offloading einheitlich auf dem Host stattfinden kann

Neue virtuelle Maschine bereitstellen

Folgender Befehl erstellt eine virtuelle Maschine mit 10 GB Speicher (unter /var/lib/libvirt/images), 1 CPU, 512 MB Arbeitsspeicher und einem Ubuntu 14.04.4 Image. Dabei wird ein VNC-Server erstellt der öffentlich unter Port 5900 erreichbar ist und mit einem Passwort gesichert ist. Dieser sollte nur zur Installation genutzt werden.

$ NAME=leipzig_projekt1 virt-install --connect qemu:///system -n $NAME -r 512 --vcpus=1 -f /var/lib/libvirt/images/$NAME.img -s 10 --network network=default,model=virtio -c /opt/images/ubuntu-14.04.4-server-amd64.iso --graphics vnc,listen=0.0.0.0,password=SUPERGEHEIMESPASSWORT --autostart --noautoconsole -v

Installation des Gast-Systems

Der obige Befehl erstellt einen VNC-Server, der nun die Installation des Servers ermöglicht. Hierbei ist darauf zu achten, dass stets auch ein SSH-Server installiert wird.

Port-Forwarding

Für das Port-Forwarding an die neue Instanz einfach in der Datei /etc/libvirt/hooks/qemu.json einen Eintrag wie folgt hinterlegen:

{
    "leipzig_projekt1": {
        "interface": "virbr0",
        "private_ip": "192.168.122.234",
        "port_map": {
            "tcp": [[34567, 22]]
        }
    }
}

Dies leitet am Host den Port 34567 auf den Port 22 des internen Hosts 192.168.122.234 weiter. Der Name muss mit dem beim virt-install angegebenen übereinstimmen. Die IP-Adress erhält man, in dem man sich noch einmal über die VNC-Session in den neuen Server einloggt und dort ip addr ausführt oder auf dem Host die vergebenen IP-Adressen mittels arp -an -i virbr0 listet.

Das benutzte Tool für das Port-Forwarding ist libvirt-hook-qemu.

Installation abschließen

Anschließend sollte noch der VNC-Server geschlossen werden. Hierzu virsh edit leipzig_projekt1 ausführen und folgenden Eintrag aus dem XML-Dokument entfernen:

    <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' passwd='SUPERGEHEIMESPASSWORT'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>

Nun muss die virtuelle Maschine einmal angehalten und erneut gestartet werden - ein reboot stoppt den VNC-Server nicht:

$ virsh shutdown leipzig_projekt1
$ virsh start leipzig_projekt1

Einloggen auf der virtuellen Maschine

Es kann sich nun mittels folgenden Befehl und dem Port aus dem Schritt "Port-Forwarding" (in diesem Fahl 34567) eingeloggt werden:

$ ssh [email protected] -p 34567

Virtuelle Maschine löschen

Um einen virtuelle Maschine zu löschen den Port-Forwarding-Eintrag in /etc/libvirt/hooks/qemu.json entfernen und folgende Befehle ausführen:

$ virsh destroy leipzig_projekt1
$ virsh undefine leipzig_projekt1
$ rm /var/lib/libvirt/images/leipzig_projekt1.img
Clone this wiki locally