-
Notifications
You must be signed in to change notification settings - Fork 141
Server
Diese Anleitung ist lediglich für die Administratoren des Host-Systems. Dies muss nicht von den Labs getätigt werden.
- 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
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
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.
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.
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
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
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