Konfigurationen verwalten mit SCPM

(This is a German article from my old homepage.)

Wer mit dem selben Rechner wechselweise in verschiedenen Netzwerken arbeitet, wird des Aufwands, immer wieder die Netzwerk-Konfiguration ändern zu müssen, schnell überdrüssig werden. Das betrifft vor allem Notebook-Anwender, die zum Beispiel sowohl in der Firma als auch zu Hause ein Netzwerk nutzen. Immer wieder müssen IP-Adresse, Netzwerkmaske, Nameserver-Adressen, Mail-Konfiguration usw. geändert werden, was manuell eine nervige Aufgabe ist. Abhilfe schafft SCPM.

SCPM (“System Configuration Profile Manager”) ist ein Hilfsprogramm, das seit Version 8.1 zur SuSE Linux Distribution gehört. Es verwaltet unterschiedliche Netzwerk-Konfigurationen und ermöglicht es der Anwenderin, mit einem kurzen Kommando zwischen diesen Konfigurationen, “Profile” genannt, zu wechseln.

Verwendung von SCPM

In YaST2 findet sich SCPM unter dem Punkt “Profilmanager” im “System”-Menü. Im Terminal wird SCPM wie folgt verwendet.

Mit dem Kommando

scpm enable

muss SCPM vor der eigentlichen Nutzung einmalig aktiviert werden. An dieser Stelle wird das “Repository” angelegt, in dem SCPM die verschiedenen Konfigurations-Profile ablegt. Im Dateisystem findet sich das Repository unter /var/lib/scpm.

Ein zweites Mal lässt sich scpm enable nur mit der Zusatzoption -f (“force” = erzwingen) ausführen. Dann wird das Repository mit allen Profilen gelöscht und ein neues angelegt.

scpm add «profil»

fügt die aktuelle Netzwerk-Konfiguration dem Repository unter dem Namen «profil» hinzu. Dies muss für jede Konfiguration nur ein Mal erfolgen. Eine Aktualisierung des Profils gehört zum Funktionsumfang des switch Kommandos.

scpm switch «profil»

überschreibt die aktuelle Systemkonfiguration mit den Daten des anschließend aktiven Profils «profil». Bei Bedarf
wird dann das Netzwerk neu gestartet, damit die Konfigurationsänderung zum Tragen kommt.

Sollte beim Aufruf von scpm switch die aktuelle Systemkonfiguration nicht den für das noch aktive Profil abgelegten Daten entsprechen, fragt scpm für jede betroffene Datei ab, ob der neue Zustand im Repository abgelegt werden soll. Man kann dies nutzen, um das momentan aktive Profil auf den aktuellen Stand zu bringen, indem man mit scpm switch zum bereits aktiven Profil “wechselt”.

Soll ein anderes Profil aktiviert werden, ohne die aktuelle Konfiguration zu speichern, ist die Option -f zu verwenden:

scpm -f switch «profil»

Profil beim Booten auswählen

Mit der Kerneloption PROFILE kann bereits beim Booten ein bestimmtes Profil ausgewählt werden. Diese Kerneloption kann nach Bedarf im Menü des Bootloaders eingegeben oder in seiner Konfigurationsdatei (/etc/lilo.conf bzw. /boot/grub/menu.lst) fest eingestellt werden.

Bei GRUB könnte zum Beispiel ein entsprechender Eintrag so aussehen:

title Office
  kernel (hd0,5) /boot/vmlinuz
  root=/dev/hda6 PROFILE=office
  initrd (hd0,5)/boot/initrd

Eigene Ressourcen definieren

Welche Ressourcen SCPM verwaltet, wird in sogenannten “resource sets” (RS) definiert. Dies sind Textdateien, in denen die Pfade der Dateien aufgelistet sind, die SCPM in seiner Datenbank ablegen soll. Abgelegt sind die RS im Verzeichnis /lib/scpm/resource_sets. Hier sind bereits in der
Grundinstallation mehrere verschiedene Dateien vorhanden, von denen gemäß dem Eintrag RESOURCE_SET="typical" in der SCPM-Konfigurationsdatei /etc/scpm.conf die Variante “typical” verwendet wird.

Ein eigenes RS kann somit einfach dadurch definiert werden, dass man eine vorhandene Datei mit neuem Namen kopiert, sie modifiziert und in /etc/scpm.conf einträgt.

Zum Beispiel enthält das RS “typical” keinen Eintrag, der den Host- und Dateinamen des Rechners im Profil speichert. Somit ist es nicht möglich, diese Namen zwischen Profilen zu variieren. Dies kann einfach behoben werden. Mit

cp typical myscpm

wird zunächst ein neues RS erzeugt, das dann auch in die Konfigurationsdatei /etc/scpm.conf einzutragen ist:

RESOURCE_SET="myscpm"

Für die Verwaltung des Host- und Domainnamens muss eine Datei-Ressource /etc/HOSTNAME hinzugefügt werden. Mit einem Texteditor ist also die folgende Zeile in myscpm einzutragen:

file /etc/HOSTNAME

Ab sofort verwaltet SCPM auch die Namensinformationen.