In Fällen, in denen ein Kickstart oder die Verwendung von Skripten zur Automatisierung der nachträglichen Bereitstellung von Systemen nicht machbar oder praktikabel ist, kann es eine Herausforderung sein, Testsysteme für sich selbst oder Kollegen zu erstellen. Wenn Sie beispielsweise versuchen, verschiedene Red Hat Satellite-Systeme für Ihr eigenes Lernen zu verwenden, würde es lange dauern, eine virtuelle Maschine zu installieren, Inhalte zu synchronisieren, Inhaltsansichten zu erstellen und so weiter. Was ist, wenn Sie das System endlich so gebaut bekommen, wie Sie es wollen, aber Sie machen es während des Studiums versehentlich unbrauchbar? Entweder Sie versuchen, ein System zu debuggen, wenn Sie nicht wissen, wie es überhaupt funktioniert, oder Sie durchlaufen den zeitaufwändigen Prozess, es von Grund auf neu zu erstellen. Wenn Sie diese Systeme Ihren Mitarbeitern zur Verfügung stellen, steigt die Wahrscheinlichkeit, dass ein System unbrauchbar wird.
[Das könnte Ihnen auch gefallen: Logical Volume Manager (LVM) versus Standardpartitionierung in Linux]
Als Lösung für diese Herausforderungen habe ich Logical Volume Manager (LVM)-Snapshots verwendet. Zunächst habe ich eine neue virtuelle Maschine (VM) erstellt, deren Sicherungsspeicher ein logisches Volume war. Ich habe das Betriebssystem installiert, Dienste konfiguriert und das System als Gold-Image eingerichtet . Ich habe dann einen Snapshot des LVM erstellt und die virtuelle Maschine von diesem Snapshot gebootet. Als das System wieder in den Gold-Zustand zurückgesetzt werden musste, war es ein einfacher Prozess, die aktuelle VM zu zerstören und zu entfernen und einen neuen Snapshot zu erstellen. Ich könnte dann die virtuelle Maschine von diesem neu erstellten Snapshot starten.
Um dies für Benutzer zugänglicher zu machen, wurde eine WebUI erstellt, die PEAR-Komponenten, PHP und sudo
verwendet Zugriff für Apache, um das standardmäßige lvremove
auszuführen , lvcreate
, virsh
, und xm
Befehle. Außerdem wurden zwei benutzerdefinierte Skripts erstellt, von denen eines einfach eine SSH-Verbindung zur VM herstellte und who
ausführte um zu sehen, ob es jemand verwendet, und das andere war ein Skript, das diese LVM-Befehle ausführen würde, um virsh destroy $1
, lvremove /dev/vgvms/$1.ss -f
, und dann lvcreate -L +5G -s -n $1.ss /dev/vgvms/$1.gold
. Bei dieser Methode war es wichtig sicherzustellen, dass der VM-Name mit dem LVM-Namen übereinstimmte und dass der Snapshot *.ss
war mit dem goldenen Bild namens *.gold
.
Ich hatte einen kleinen Titel mit einem Link zu lorenz , das ein System war, das denselben Setup-Typ verwendete, aber ein Hypervisor für grundlegende RHEL-Clients war, nicht für Satellitenserver. Die Haupttabelle in der WebUI wird mit Code gefüllt:
if(is_array($inactive_guests)) {
foreach ($inactive_guests as $key=>$value) {
$tpl->setVariable(array(
'server_name' => $key,
'virsh_status' => $value['status'],
'fqdn' => $value['fqdn'],
'userinfo' => $value['userinfo'],
'notes' => $value['notes'],
'inactivecontrols' => inactive_controls($key)));
$tpl->parse('inactiveserver');
}
}
Die WebUI zeigt diese Felder für jedes System an und gibt diese Ausgabe aus:
Die Hauptvorteile dieser Methode sind, dass Sie schnell einen bekannten guten Zustand wiederherstellen können, die WebUI meldet, ob jemand ein bestimmtes System verwendet, und dass es sich um ein unkompliziertes System handelt. Einige der Nachteile sind jedoch, dass es ziemlich speicherintensiv ist und es keine Möglichkeit gibt, ein System zu reservieren, um zu verhindern, dass jemand anderes es verwendet oder es in den goldenen Zustand zurückversetzt. Mit ein wenig zusätzlicher Entwicklung könnten diese Probleme jedoch behoben werden.
Credits für die anfängliche Entwicklung dieses Projekts gehen an Jeremy Agee und Patrick Wiggins. Sie können den WebUI-Quellcode herunterladen.
[ Kostenloser Kurs:Technischer Überblick über Red Hat Satellite. ]