Red Hat Training

A Red Hat training course is available for Red Hat Satellite

B.3. Red Hat Network Configuration Manager

Im Gegensatz zum Red Hat Network Configuration Client ist der Red Hat Network Configuration Manager (rhncfg-manager) dazu entworfen, das zentrale RHN Repository (Konfig-Dateien und Channels) zu warten. Dieses Tool stellt eine Befehlszeilen-Alternative zu den Konfigurationsmanagement-Features innerhalb der RHN-Website dar und ermöglicht ebenso das Erstellen eines Skript für einige oder auch alle damit in Verbindung stehenden Wartungsaufgaben.
Es ist für die Benutzung durch Konfig-Administratoren vorgesehen und erfordert tatsächlich RHN-Benutzername und -Passwort mit der entsprechenden Berechtigung. Der Benutzername kann in /etc/sysconfig/rhn/rhncfg-manager.conf oder im Abschnitt [rhncfg-manager] von ~/.rhncfgrc festgelegt werden.
Wenn der Red Hat Network Configuration Manager als root abläuft, versucht dieser benötigte Konfigurationswerte vom Red Hat Update Agent einzuholen. Wenn der Red Hat Network Configuration Manager nicht als root ausgeführt wird, müssen Sie eventuell Konfigurationsänderungen innerhalb der ~/.rhncfgrc-Datei durchführen. Die Sitzungsdatei ist in ~/.rhncfg-manager-session zwischengespeichert, um zu verhindern, dass für jeden Befehl neu eingeloggt werden muss.
Das standardmäßige Timeout für den Red Hat Network Configuration Manager ist 30 Minuten. Um dies abzuändern, fügen Sie die Option server.session_lifetime und einen neuen Wert der /etc/rhn/rhn.conf-Datei auf dem Server hinzu, auf dem der Manager abläuft, wie z. B.:
 server.session_lifetime = 120 
Der Red Hat Network Configuration Manager bietet diese grundlegenden Verfahren: add, create-channel, diff, diff-revisions, download-channel, get, list, list-channels, remove, remove-channel, revisions, update und upload-channel.
Jedes Verfahren besitzt einen eigenen Satz an Optionen, welche Sie unter Verwendung des folgenden Befehls sehen können:
 rhncfg-manager mode --help 
Ersetzen Sie mode mit dem Namen des Modus, der kontrolliert werden soll:
rhncfg-manager diff-revisions --help
Sie finden eine solche Liste von Optionen für das add-Verfahren unter Tabelle B.4, »rhncfg-manager add Optionen«.

B.3.1. Einen Konfig-Channel erstellen

Um einen Konfig-Channel für Ihr Unternehmen zu erstellen, führen Sie folgenden Befehl aus:
 rhncfg-manager create-channel channel-label
Wenn Sie nach Ihrem RHN-Benutzernamen und -Passwort gefragt werden, geben Sie diese ein. Sie sollten eine Ausgabe erhalten, der wie folgt aussieht:
 Red Hat Network username: rhn-user Password: Creating config channel channel-label Config channel channel-label created 
Sobald Sie einen Konfig-Channel erstellt haben, stehen Ihnen die verbleibenden, oben aufgelisteten Verfahren zur Verfügung, um diesen Channel zu belegen und zu warten.

B.3.2. Dateien einem Konfig-Channel hinzufügen

Um eine Datei einem Konfig-Channel hinzuzufügen, müssen Sie das Channel-Label sowie auch die lokale Datei zum Hochladen festlegen, wie z. B.:
 rhncfg-manager add --channel=channel-label /path/to/file
Zusätzlich zum erforderlichen Channel-Label und Pfad für die Datei, können Sie die verfügbaren Optionen zur Modifikation der Datei benutzen. Beispielsweise können Sie den Pfad und den Dateinamen abändern, indem Sie die --dest-file-Option zum Befehl hinzufügen:
 rhncfg-manager add --channel=channel-label--dest-file=/new/path/to/file.txt/path/to/file
Die Ausgabe sollte ungefähr so aussehen:
 Pushing to channel example-channel Local file >/path/to/file -> remote file /new/path/to/file.txt 
Die folgende Tabelle listet alle für rhncfg-manager add erhältlichen Optionen:

Tabelle B.4. rhncfg-manager add Optionen

Option Beschreibung
-cCHANNEL --channel=CHANNEL Lade Dateien in diesen Konfig-Channel hoch
-dDEST_FILE --dest-file=DEST_FILE Lade die Datei als diesen Pfad hoch
--delim-start=DELIM_START Starte Delimiter für variable Interpolation.
--delim-end=DELIM_END Beende Delimeter für varibale Interpolation.
-h, --help Zeige Hilfe und steige aus

Anmerkung

Standardmäßig beträgt die maximale Dateigröße für Konfigurationsdateien 128KB. Falls Sie diesen Wert ändern müssen, finden oder erstellen Sie die folgende Zeile in der Datei /etc/rhn/rhn.conf:
web.maximum_config_file_size=128
Ändern Sie den Wert von 128 in den Wert in Bytes, den Sie als Limit möchten.

B.3.3. Zwischen den neuesten Konfig Dateien unterscheiden

Um den Unterschiede zwischen den Konfig-Dateien auf Platte und den neuesten Revisionen in einem Channel ausfindig zu machen, führen Sie folgenden Befehl aus:
 rhncfg-manager diff --channel=channel-label --dest-file=/path/to/file.txt \ /local/path/to/file
Das Output sollte ungefähr so aussehen:
 /tmp/dest_path/example-config.txt /home/test/blah/hello_world.txt --- /tmp/dest_path/example-config.txt config_channel: example-channel revision: 1 +++ /home/test/blah/hello_world.txt 2003-12-14 19:08:59.000000000 -0500 @@ -1 +1 @@ -foo +hello, world 
Die folgende Tabelle listet alle für rhncfg-manager diff erhältichen Optionen:

Tabelle B.5. rhncfg-manager diff Optionen

Option Beschreibung
-cCHANNEL, --channel=CHANNEL Hole Datei(en) von diesem Konfig-Channel
-rREVISION, --revision=REVISION Verwende diese Revision
-dDEST_FILE, --dest-file=DEST_FILE Lade die Datei als diesen Pfad hoch
-tTOPDIR, --topdir=TOPDIR Alle Dateien müssen diesem String entsprechen
-h, --help Zeige Hilfe und beende

B.3.4. Zwischen verschiedenen Versionen unterscheiden

Um verschiedene Versionen einer Datei quer durch Channels und Revisionen zu vergleichen, benutzen Sie die -r Option, um zu bestimmen, welche Revision der Datei verglichen werden soll und die -n Option, um die beiden Kanäle zu bestimmen, die überprüft werden sollen. Siehe Abschnitt B.3.11, »Die Anzahl der Datei-Revisionen ermitteln« für Instruktionen diesbezüglich. Beachten Sie, dass Sie hier nur einen Dateinamen festlegen, da Sie die Datei mit einer anderen Version dieser Datei vergleichen, wie beispielsweise:
 rhncfg-manager diff-revisions -n=channel-label1-r=1-n=channel-label2-r=1/path/to/file.txt
Die Ausgabe sollte ungefähr so aussehen:
 --- /tmp/dest_path/example-config.txt 2004-01-13 14:36:41 \ config channel: example-channel2 revision: 1 --- /tmp/dest_path/example-config.txt 2004-01-13 14:42:42 \ config channel: example-channel3 revision: 1 @@ -1 +1,20 @@ -foo +blaaaaaaaaaaaaaaah +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.0.6 (GNU/Linux) +Comment: For info see http://www.gnupg.org + +iD8DBQA9ZY6vse4XmfJPGwgRAsHcAJ9ud9dabUcdscdcqB8AZP7e0Fua0NmKsdhQCeOWHX +VsDTfen2NWdwwPaTM+S+Cow= +=Ltp2 +-----END PGP SIGNATURE----- 
Die folgende Tabelle listet die für rhncfg-manager diff-revisions erhältlichen Optionen:

Tabelle B.6. rhncfg-manager diff-revisions Optionen

Option Beschreibung
-cCHANNEL, --channel=CHANNEL Verwende diesen Konfig-Channel
-rREVISION, --revision=REVISION Verwende diese Revision
-h, --help Zeige Hilfe und beende

B.3.5. Alle Dateien werden in einem Channel heruntergeladen

Um sämtliche Dateien in einem Channel auf Platte herunterzuladen, erzeugen Sie ein Verzeichnis und führen Sie folgenden Befehl aus:
	 rhncfg-manager download-channel channel-label --topdir . 
Die Ausgabe sollte ungefähr so aussehen:
 Copying /tmp/dest_path/example-config.txt -> \ blah2/tmp/dest_path/example-config.txt 
Die folgende Tabelle listet die für rhncfg-manager download-channel erhältlichen Optionen:

Tabelle B.7. rhncfg-manager download-channel Optionen

Option Beschreibung
-tTOPDIR, --topdir=TOPDIR Verzeichnis zu dem alle Dateipfade relativ sind. Diese Option muss eingestellt sein.
-h, --help Zeige Hilfe und beende

B.3.6. Die Inhalte einer Datei erhalten

Um die Inhalte einer bestimmten Datei auf stdout (Standardausgabe) umzulenken, führen Sie folgenden Befehl aus:
 rhncfg-manager get --channel=channel-label \ /tmp/dest_path/example-config.txt 
Sie sollten die Inhalte der Datei als Ausgabe sehen.

B.3.7. Alle Dateien in einem Channel auflisten

Um alle Dateien in einem Channel aufzulisten, führen Sie folgenden Befehl aus:
 rhncfg-manager list channel-label
Das Output sollte ungefähr so aussehen:
 Files in config channel `example-channel3': /tmp/dest_path/example-config.txt 
Die folgende Tabelle listet die für rhncfg-manager get erhältlichen Optionen:

Tabelle B.8. rhncfg-manager get Optionen

Option Beschreibung
-cCHANNEL, --channel=CHANNEL Hole Datei(en) von diesem Konfig-Channel
-tTOPDIR, --topdir=TOPDIR Alle Dateien müssen diesem String entsprechen
-rREVISION, --revision=REVISION Hole diese Datei-Revision
-h, --help Zeige Hilfe und beende

B.3.8. Alle Konfig-Channels auflisten

Um alle Konfigurationskanäle Ihrer Organisation aufzulisten, führen Sie folgenden Befehl aus:
 rhncfg-manager list-channels 
Die Ausgabe sollte ungefähr so aussehen:
 Available config channels: example-channel example-channel2 example-channel3 config-channel-14 config-channel-17 
Beachten Sie, dass dies keine local_override oder server_import-Channels auflistet.

B.3.9. Eine Datei vom Channel entfernen

Um eine Datei von einem Channel zu entfernen, führen Sie folgenden Befehl aus:
 rhncfg-manager remove --channel=channel-label /tmp/dest_path/example-config.txt
Wenn Sie nach Ihrem RHN-Benutzernamen und -Passwort gefragt werden, geben Sie diese ein. Sie sollten einen Output erhalten, der wie folgt aussieht:
 Red Hat Network username: rhn-user Password: Removing from config channel example-channel3 /tmp/dest_path/example-config.txt removed 
Die folgende Tabelle listet die für rhncfg-manager remove erhältlichen Optionen:

Tabelle B.9. rhncfg-manager remove Optionen

Option Beschreibung
-cCHANNEL, --channel=CHANNEL Entferne Dateien von diesem Konfig-Channel
-tTOPDIR, --topdir=TOPDIR Alle Dateien müssen diesem String entsprechen
-h, --help Zeige Hilfe und beende

B.3.10. Einen Konfig-Channel löschen

Um einen Konfig-Channel in Ihrer Organisation zu löschen, führen Sie folgenden Befehl aus:
rhncfg-manager remove-channel channel-label 
Die Ausgabe sollte ungefähr so aussehen:
 Removing config channel example-channel Config channel example-channel removed 

B.3.11. Die Anzahl der Datei-Revisionen ermitteln

Um herauszufinden wieviele Revisionen (Revisionen gehen von 1 bis N, wobei N eine Ganzzahl größer als 0 ist) einer Datei oder eines Pfads sich in einem Channel befinden, führen Sie folgenden Befehl aus:
 rhncfg-manager revisions channel-label /tmp/dest_path/example-config.txt 
Die Ausgabe sollte ungefähr so aussehen:
 Analyzing files in config channel example-channel \ /tmp/dest_path/example-config.txt: 1 

B.3.12. Eine Datei in einem Channel aktualisieren

Um eine neue Revision einer Datei in einem Channel zu erzeugen (oder um die erste Revision hinzuzufügen, wenn zuvor noch keine Revision für den jeweiligen Pfad existiert hat), führen Sie folgenden Befehl aus:
 rhncfg-manager update \ --channel=channel-label --dest-file=/path/to/file.txt /local/path/to/file
Die Ausgabe sollte ungefähr so aussehen:
 Pushing to channel example-channel: Local file example-channel/tmp/dest_path/example-config.txt -> \ remote file /tmp/dest_path/example-config.txt 
Die folgende Tabelle listet die für rhncfg-manager update erhältlichen Optionen:

Tabelle B.10. rhncfg-manager update Optionen

Option Beschreibung
-cCHANNEL, --channel=CHANNEL Lade Dateien in diesen Konfig-Channel hoch
-dDEST_FILE, --dest-file=DEST_FILE Lade die Datei als diesen Pfad hoch
-tTOPDIR, --topdir=TOPDIR Alle Dateien müssen diesem String entsprechen
--delim-start=DELIM_START Starte Delimiter für variable Interpolation.
--delim-end=DELIM_END Beende Delimeter für varibale Interpolation.
-h, --help Zeige Hilfe und beende

B.3.13. Mehrere Datein aufeinmal hochladen

Um mehrere Dateien von einer lokalen Platte auf einen Konfig-Channel hochzuladen, führen Sie folgenden Befehl aus:
 rhncfg-manager upload-channel --topdir=topdir channel-label
Die Ausgabe sollte ungefähr so aussehen:
 Using config channel example-channel4 Uploading /tmp/ola_world.txt from blah4/tmp/ola_world.txt 
Die folgende Tabelle listet die für rhncfg-manager upload-channel erhältlichen Optionen:

Tabelle B.11. rhncfg-manager upload-channel Optionen

Option Beschreibung
-tTOPDIR, --topdir=TOPDIR Verzeichnis zu dem alle Dateipfade relativ sind
-cCHANNEL, --channel=CHANNEL Liste von Channel in welche die Konfig-Info hochgeladen wird. Channels durch ',' abgegrenzt. Example: --channel=foo,bar,baz
-h, --help Zeige Hilfe und beende