Ideen/Technik? hinter ctdomubuilder
Ansätze automatisiert virtuelle Maschinen u.a. für Xen zu bauen, gibt es einige. Mit den xen-tools enthält die Heft-DVD ein dazu geeignetes Paket. Es kann nicht nur Debian-VMs erzeugen, sondern unter anderem auch solche für CentOS. Trotzdem bringt der c't-Debian-Server mit ctdomubuilder einen eigenen Ansatz zum Erzeugen virtueller Maschinen mit.
Das ctdomubuilder-Paket ist in das Konfigurationsfrontend ctsrvcfg eingebunden und auf das Zusammenspiel mit der Distribution abgestimmt. Letzteres äußert sich in mehreren Punkten: Die per ctdomubuilder erzeugten DomUs werden wie die Firewall und der SBS auch im System als Debian-Paket verankert, automatisch in den lokalen DNS-Server eingetragen (wenn sie im internen Netz liegen), auf den Einsatz von ctsrvcfg in der DomU vorbereitet, und zum Erstellen der DomUs wird ein lokales Repository verwendet, um die Debian-Server nicht unnötig zu belasten.
Das ctdomubuilder-Paket wird dabei nicht vollständig installiert, sondern nur seine Installation angestoßen. Im postinst-Skript erzeugt es dann seinerseits ein Debain-Paket für die DomU, das ctsrvcfg seinerseits installiert. Anschließend entfernt ctsrvcfg das ctdomubuilder-Paket wieder, sodass bei einem erneuten Aufruf eine weitere DomU als Debian-Paket erzeugt werden kann. Bei ctdomubuilder handelt es sich letztlich nur um ein Helferpaket.
Bei der ersten Installation von ctdomubuilder erstellt das Paket in /var/lib/xen/.ctdomubuilder ein Minimal-Image einer Debain-Etch-Installation. Wenn dabei etwas schief geht oder Sie dieses Image, das beim Erzeugen weiterer DomUs stets als Vorlage benutzt wird, erneuern wollen, müssen Sie das ctdomubuilder-Paket per dpkg --purge ctdomubuilder komplett aus dem System entfernen. Beim nächsten ctdomubuilder-Lauf wird die Vorlage neu erstellt.
Die erstellten DomU-Pakete (ihrem Namen wird stets "domu-" vorangestellt) sind ähnlich denen der Firewall und des SBS aufgebaut. Das heißt, in /var/lib/xen/domuname landen die Image-Dateien der virtuellen Platten beziehungsweise Platzhalter für die zugehörigen LVM-Volumes. Achtung, ctsrvcfg und ctdomubuilder greifen zu einer Vereinfachung, um das Erstellen der DomUs zu beschleunigen: Anstatt im Paket die Images anzulegen und bei der Installation auf die LVM-Volumes zu überspielen, richtet ctdomubuilder die LVM-Volumes direkt ein. So geht die Installation schnell und beim Abräumen der DomU per Debian-Paketverwaltung verschwinden die LVM-Volumes trotzdem.
Aus diesem Implementierungstrick ergibt sich eine Einschränkung: Die entstehenden DomU-Pakete sind nicht transportabel, können also nicht auf einem anderen System installiert werden.