
Ich suche ein leichtes Tool zur vollständigen Betriebssystemvirtualisierung.
Es sollte unter Linux laufen und das Betriebssystem innerhalb der Virtualisierung ist ebenfalls Linux.
Mein Anwendungsfall: Ich möchte unser Konfigurationsmanagement testen.
- Start-Basisimage einer aktuellen Linux-Distribution (Ubuntu und SuSE)
- Führen Sie unser Konfigurationsmanagement (Salt Stack) aus.
- Überprüfen Sie, ob das Betriebssystem richtig konfiguriert wurde und funktioniert.
Dinge, die meiner Meinung nach nicht zusammenpassen:
- KVM/Qemu: zu schwer, kein Leichtgewicht
- Docker: Ich brauche Cron, SSH, Apache im Betriebssystem. Soweit ich weiß, ist Docker hier nicht geeignet.
- chroot reicht nicht aus, da meines Wissens nach das Binden an 0.0.0.0 nicht funktioniert (Apache, SSHD, …)
Welches (Open Source-)Tool könnte verwendet werden?
Antwort1
Das Nächstliegende, was mir einfällt, istLXD.
LXD ist ein Management-Daemon, der LXC für die "Virtualisierung" verwendet
Die Implementierung unter der Haube ähnelt eher Docker (Docker basierte früher auf der LXC-Bibliothek), die Verwendung soll jedoch eher einer VM ähneln.
Was Sie hier tatsächlich bekommen, ist ein Init-Prozess in einem Container. Es gibt viele verschiedene Basis-Images, mit denen Sie beginnen können, um ein Ubuntu-, CentOS-, Alpine- oder anderes Linux-System nachzubilden. Es gibt jedoch keine Hardware-Emulation wie bei VMs; alle Container laufen auf dem Kernel des Hosts.
Der leitende Entwickler hat eine BlogserieHierzur Verwendung von LXD.
Ich verwende LXD häufig bei der Entwicklung und beim Testen. Sie können es mit einer privaten Bridge als isoliertes Netzwerk für den lokalen Computer einrichten oder mit Ihrer physischen Schnittstelle eine Bridge bilden und die Container im externen Netzwerk verfügbar machen. So betreibe ich meinen Heimserver, sodass ich mich per SSH mit jedem Container/Server verbinden kann, als wäre es ein vollwertiger Server.
Für Test- und Entwicklungsarbeiten ist die Netzwerkbrücke mit keinem physischen Gerät verbunden, sodass ich zwar einen Datenbankcluster oder was auch immer ich benötige, mit echtem Netzwerk einrichten kann, aber nur auf meinem lokalen Laptop.