Neues Tool klont Linux-Systeme per systemd-Container
Das eigene Linux-System schnell einmal klonen, um etwas zu testen: Das bietet sdme, der systemd Machine Editor. Obendrein kann es OCI-Images als native systemd-Services starten, was in manchen Fällen Container-Engines wie Docker, Podman & Co. ersetzen kann. Das Tool wurde am Mittwoch von Entwickler Alexandre Fiori auf der systemd-Konferenz „All Systems Go!“ in Berlin vorgestellt.
System read-only einbinden, statt voll zu klonen
Wer am eigenen System experimentieren will, kopiert es klassischerweise in eine virtuelle Maschine, um gefahrlos etwas zu ändern. Statt das System langwierig zu kopieren, bindet sdme das Host-System schreibgeschützt ein. Dazu nutzt es systemd-nspawn, die leichtgewichtige Container-Technologie, die das Linux-Init-System systemd mitbringt. Alle vorgenommenen Änderungen speichert sdme separat in einem Overlay-Dateisystem, die eigentlichen Daten bleiben unangetastet. Es kann Btrfs-Snapshots als Unterbau nutzen, dann laufen auch verschachtelte Container.
Nach der Installation des Tools erzeugt ein Aufruf von sdme new einen Container mit allen Inhalten des Host-Dateisystems, der kaum Speicherplatz verbraucht und beliebige testweise Änderungen am System ermöglicht. Das funktioniert genauso für beliebig viele neue Container; auch andere Container-Images können so gestartet werden. Wie für nspawn üblich können diese problemlos ein volles Init-System mitbringen und stellen so für viele Experimente eine leichtgewichtige Alternative zu VMs dar.
Ähnlich wie von anderen Container-Engines bekannt, werden Befehle wie sdme ps unterstützt, das alle laufenden Container auflistet, und sdme rm, das sie wieder löscht. Außerdem unterstützt sdme „Pods“, die an das Konzept von Kubernetes-Pods angelehnt sind. So werden zwei oder mehr Container in enger Verbindung gestartet, sodass sie miteinander arbeiten können und sich einen Netzwerk-Namespace teilen, aber von der Außenwelt isoliert sind. Zur Vereinfachung können auch Kubernetes-YAML-Dateien eingelesen und deren Pod-Definitionen direkt verwendet werden. Der Entwickler weist darauf hin, dass es sich bei sdme nicht um ein Security-Werkzeug handelt, das mit Isolation hilft, sondern nur zu Organisations- und Experimentierzwecken gedacht ist; Details zum Sicherheitsmodell liefert eine eigene sdme-Webseite.
Auf der Website von sdme können Pakete zur Installation heruntergeladen werden, außerdem stehen Tutorials zum Ausprobieren bereit. Das Programm besteht aus einer einzigen statischen Binärdatei und benötigt keinen eigenen Daemon. Voraussetzung ist systemd ab Version 255 samt dem Paket systemd-container, Builds gibt es für x86_64 und aarch64. Die Aufzeichnung des Vortrags bei der All Systems Go ist auf media.ccc.de verfügbar.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.