Dieser Artikel ist eine Anleitung wie man auf einem Ubuntu Server:
- KVM installiert
- Einen virtuellen Ubuntu Server erstellt
- Eine Portweiterleitung an die Viruelle Maschine einrichtet
Dieses Vorgehen ist sinnvoll um:
- Den Host-Server (und die Gast-Server gegeneinander) abzusichern
- Dienste (Webserver, Datenbank etc.) mehrach laufen zu lassen ohne, dass ungewollte Synergieeffekte auftreten
Komfortabler Weise entwickelt Canonical ein sogenanntes Ubuntu “Cloud Image”.
Dieses Image ist eine für diese Verwendung optimierte und abgespeckte Version des Ubuntu Servers.
Des weiteren werden uns mit Libvirt und ukv-kvm sehr mächtige Werkzeuge an die Hand gegeben um das Virtualisieren mit KVM zu vereinfachen.
KVM installieren
Verbindet euch per ssh zu dem Ubuntu Server mit einem Benutzer der sudo Rechte hat.
Bevor wir irgendwelche Arbeiten an dem Server beginnen, aktualisieren wir die Paketquellen und installieren ausstehende Updates.
sudo apt-get update && sudo apt-get upgrade
Nicht jede CPU unterstützt Virtualisierung.
Um zu prüfen, ob der Prozessor in eurem Server geeignet installieren wir den “cpu-checker”.
sudo apt-get install cpu-checker
Mit kvm-ok
könnt ihr jetzt prüfen, ob die CPU den Anforderungen entspricht.
Anschließend installieren wir das sogenannte uvtool.
sudo apt-get install uvtool
Es bringt dazu folgende Werkzuge mit diversen Parametern mit:
- uvt-simplestreams-libvirt → Images herunterladen und aktualisieren (synchronisieren)
- uvt-kvm → Verwalten der VMs
Nun laden wir ein Ubuntu 16.04 (xenial) 64-bit image herunter.
Auch wenn die Cloud Images im vergleich zu orginalen Server Images relativ klein sind, kann dies je nach Internetleitung einige Minuten dauern.
uvt-simplestreams-libvirt sync release=xenial arch=amd64
Virtuelle Maschine erstellen
Um uns mit der zu erstellenden VM verbinden zu können, müssen wir einen öffentlichen ssh Schlüssel in der VM hinterlegen.
In unserem beispiel erstellen wir einen neuen, ihr könnt aber auch euren eigenen verwenden.
Gebt dem key einen anderen namen als “id_rsa”, um euren eigenen nicht zu überschreiben.
ssh-keygen
Jetzt nutzen wir uvt-kvm um eine VM mit dem Namen „vm_xenial“ zu erstellen und hinterlegen den öffentlichen SSH-Schlüssel.
(Dieser wird den default user “Ubuntu” in die Datei /home/ubuntu/.ssh/Authorized_keys geschrieben)
uvt-kvm create vm_xenial release=xenial --ssh-public-key-file ~/.ssh/vm_xenial_id_rsa.pub
Mit virsh lassen wir uns nun einmal unsere laufenden VMs anzeigen.
virsh list
Anschließend finden wir die IP Adresse der neu erstellten VM fest und verbinden uns per ssh.
uvt-kvm ip xenial
ssh -i ./vm_xenial_id_rsa ubuntu@<ip>
Cheers,
Ori
Vielen Dank an Fl@ und beegeees, die maßgeblich bei der Erstellung dieses Artikels mitgewirkt haben.