RHN Classic nach RHSM migrieren

Red Hat Network, die bisherige Systemmanagement-Plattform für Red Hat Enterprise Linux-Systeme, wird seit Frühjahr 2012 nach und nach durch den neuen Red Hat Subscription Manager ersetzt. Dieser wird seit Red Hat Enterprise Linux 5.7, 6.1 bzw. 7 Beta unterstützt. Aber wie migriert man am besten ein bestehendes System vom bisherigen "RHN Classic" auf den neuen "RHSM"?

Als Administrator eines gepflegten Systems mit Red Hat Enterprise Linux führt normalerweise kein Weg an RHN, dem Red Hat Network, vorbei. Dabei handelt es sich um eine von Red Hat bereitgestellte Systemmanagement-Plattform welche für Kunden - in Verbindung mit dem Red Hat Customer Portal - zugänglich ist. Neben der Verwaltung der gebuchten RHEL-Subskriptionen, Support-Bereich und Knowledgebase sind auch die eigenen registrierten RHEL-Systeme dort einsehbar. Eine Registrierung eines RHEL-Systems am RHN ist immer sinnvoll, da nur damit die in der Subskription enthaltene Update-Berechtigung sinnvoll und effizient genutzt werden kann. Im Red Hat Customer Portal gab es bislang keine direkte Zuordnung zwischen gebuchten RHEL-Subskriptionen und im RHN registrierten RHEL-Systemen - letztendlich mussten die beiden Bereiche irgendwie deckungsgleich sein. Mit RHSM, dem Red Hat Subscription Manager, ändert sich genau das: Es gibt nun eine direkte Zuordnung der gebuchten RHEL-Subskriptionen zu einem registrierten RHEL-System. Zum einen löst das die bisher existierende Schwammigkeit auf und zum anderen ist auch für den Endkunden klar einsehbar zu welchem System eine z.B. auslaufende Subskription gehört.

Ob ein bestehendes RHEL-System am RHN registriert und für Updates berechtigt ist lässt sich recht einfach ermitteln, beispielsweise mit dem Paketmanagement-System YUM. Letztendlich führt man eine Aktion wie yum search aus:

tux:~ # yum search kernel
Loaded plugins: product-id, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.

[...]
tux:~ #

Obige Ausgabe zeigt, dass das System am RHN registriert ist. Dafür wird technisch das YUM-Plugin "rhnplugin" verwendet. Zudem ist in diesem Fall bereits das YUM-Plugin "subscription-manager" installiert welches für die Nutzung des RHSM erforderlich ist. Die Tatsache, dass beide YUM-Plugins bereits installiert sind ist bei neueren RHEL-Systemen nicht unüblich - natürlich wird immer nur eines der beiden Plugins genutzt.

Da sich aus der Ausgabe von YUM jedoch leider nicht erkennen lässt, ob das System am von Red Hat bereitgestellten "RHN Classic" oder an einem "RHN Satellite" registriert ist, ist ein grep-Aufruf erforderlich. Bei "RHN Satellite" handelt es sich um ein Produkt von Red Hat das den lokalen Betrieb einer RHN-Umgebung ermöglicht während "RHN Classic" (manchmal auch "RHN Hosted" genannt) hingegen die von Red Hat bereitgestellte Fassung bezeichnet.

tux:~ # grep -E "^serverURL=" /etc/sysconfig/rhn/up2date
serverURL=https://xmlrpc.rhn.redhat.com/XMLRPC
tux:~ #

Das Ergebnis zeigt eindeutig, dass das System am von Red Hat bereitgestellten RHN registriert ist. Sollten Sie eine andere Ausgabe erhalten, so wird vermutlich bei Ihnen im Netzwerk ein eigenes RHN mit Red Hat Satellite betrieben. In diesem Falle sollten Sie zuerst Ihren Systemadministrator kontaktieren, da RHSM auf Serverseite erst ab Red Hat Satellite 6 unterstützt wird.

Glaubt man den ganzen Marketing-Präsentationen lässt sich die Migration vom Red Hat Network zum Red Hat Subscription Manager ganz leicht und problemlos mit dem neuen Werkzeug rhn-migrate-classic-to-rhsm realisieren welches Bestandteil des RPM-Pakets "subscription-manager-migration" ist. Leider ist die Praxis nicht ganz so rosig, denn schon bei der - meines Erachtens - nicht unüblichen Konstellation mit einem Red Hat Enterprise Linux 6 (Server) mit den Kanälen "Basis", "Optional", "FasTrack" und "Optional FasTrack" schlägt das Werkzeug fehl:

tux:~ # rhn-migrate-classic-to-rhsm
Red Hat account: Tux
Password:

Retrieving existing RHN Classic subscription information...

+-----------------------------------------------------+
System is currently subscribed to these RHN Classic Channels:
+-----------------------------------------------------+
rhel-x86_64-server-6
rhel-x86_64-server-optional-6
rhel-x86_64-server-optional-fastrack-6
rhel-x86_64-server-fastrack-6

+-----------------------------------------------------+
No product certificates are mapped to these RHN Classic channels:
+-----------------------------------------------------+
rhel-x86_64-server-optional-fastrack-6
rhel-x86_64-server-fastrack-6

Use --force to ignore these channels and continue the migration.

tux:~ #

Die Benutzung des von rhn-migrate-classic-to-rhsm vorgeschlagenen Kommandozeilen-Parameters --force löst das Problem übrigens genausowenig, denn auch hier kommt keine Migration zu stande. Die beschriebene Problematik dürfte ihre Ursache in der Entwicklungsgeschichte des Red Hat Subscription Managers haben: Aus dem inzwischen nicht mehr öffentlichen Bugreport #818202 geht hervor, dass beispielweise der FasTrack-Kanal anfänglich nicht über RHSM verfügbar war. Erst seit der Veröffentlichung von Red Hat Enterprise Linux 5.10 bzw. 6.5 sind alle RHN-Channels auch über RHSM verfügbar. Gratulation somit all denjenigen, die sich - im Unterschied zu mir - mit der Migration auf RHSM bis jetzt Zeit gelassen haben.

Zurück zur eigentlichen Thematik: Für die Migration vom Red Hat Network zum Red Hat Subscription Manager müssen als erstes die benötigten RPM-Pakete installiert werden. Die beiden Pakete "subscription-manager-migration" und "subscription-manager-migration-data" werden nur für die Migration benötigt und können danach wieder problemlos entfernt werden. Da es bis RHEL 6.6 zwischen den RPM-Paketen eine fehlende Abhängigkeit gibt sollten die benötigten Pakete bis auf weiteres explizit angegeben werden. Details zum Fehler und zum aktuellen Stand können übrigens im Bugreport #811779 und Bugreport #1049037 eingesehen werden.

tux:~ # yum install subscription-manager subscription-manager-migration subscription-manager-migration-data

Nach der Installation der benötigten RPM-Pakete müssen zuerst alle zugeordneten zusätzlichen RHN-Channels im Red Hat Network entfernt werden. Diese Aktion hat keine Auswirkung auf die auf dem System installierten Pakete, lediglich auf die absofort zur Verfügung stehenden YUM-Repositories. Alternativ zum Kommandozeilen-Werkzeug ist dieser Schritt auch über die Weboberfläche des Red Hat Networks möglich. Mein Beispiel bezieht sich auf ein Red Hat Enterprise Linux 6 (Server) mit den Channels "Basis", "Optional", "FasTrack" und "Optional FasTrack":

tux:~ # rhn-channel --remove --channel=rhel-x86_64-server-fastrack-6 --channel=rhel-x86_64-server-optional-6 --channel=rhel-x86_64-server-optional-fastrack-6
Username: Tux
Password:

tux:~ #

Wurden alle zusätzlichen RHN-Channels entfernt, kann endlich rhn-migrate-classic-to-rhsm für die eigentliche Migration von RHN Classic nach RHSM aufgerufen werden:

tux:~ # rhn-migrate-classic-to-rhsm
Red Hat account: Tux
Password:

Retrieving existing RHN Classic subscription information...

+-----------------------------------------------------+
System is currently subscribed to these RHN Classic Channels:
+-----------------------------------------------------+
rhel-x86_64-server-6

+-----------------------------------------------------+
Installing product certificates for these RHN Classic channels:
+-----------------------------------------------------+
rhel-x86_64-server-6

Product certificates installed successfully to /etc/pki/product.

Preparing to unregister system from RHN Classic...
System successfully unregistered from RHN Classic.

Attempting to register system to Red Hat Subscription Management...
The system has been registered with ID: 14aee128-8a00-49a2-95d4-a6da1c149314
System 'tux.example.net' successfully registered to Red Hat Subscription Management.

Attempting to auto-attach to appropriate subscriptions...
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux Server
Status:       Subscribed


Please visit https://access.redhat.com/management/consumers/14aee128-8a00-49a2-95d4-a6da1c149314 to view the details, and to make changes if necessary.

tux:~ #

Bitte beachten Sie unbedingt, dass bei der Migration eine aktive RHEL-Subskription direkt dem RHEL-System zugeordnet wird. Dabei handelt es sich natürlich nicht zwangsläufig um die richtige Subskription, da die Entscheidung lediglich auf Basis der technischen Daten des Systems bzw. der Subskription automatisiert gefällt wird. Ist keine aktive bzw. keine technisch passende RHEL-Subskription verfügbar, so schlägt lediglich die Zuordnung der Subskription zum System fehl. Allerdings sind dann die nachfolgenden Schritte erst möglich wenn Sie die in der Ausgabe genannte Webseite im Red Hat Customer Portal besuchen und die Zuordnung der Subskription händisch vorgenommen haben.

Im nächsten Schritt müssen die zuvor entfernten RHN-Channels wieder hinzugefügt werden - diese heißen aber nun RHSM-Repositories und haben zudem andere Namen. Gleichzeitig können die beiden neuen (standardmäßig aktivierten) RHSM-Repositories "rhel-6-server-rhev-agent-rpms" und "rhel-6-server-cf-tools-1-rpms" deaktiviert werden sofern man diese beiden Repositories nicht aus irgendeinem Grund benötigt:

tux:~ # subscription-manager repos --enable=rhel-6-server-fastrack-rpms --enable=rhel-6-server-optional-rpms --enable=rhel-6-server-optional-fastrack-rpms --disable=rhel-6-server-rhev-agent-rpms --disable=rhel-6-server-cf-tools-1-rpms
Repo rhel-6-server-fastrack-rpms is enabled for this system.
Repo rhel-6-server-optional-rpms is enabled for this system.
Repo rhel-6-server-optional-fastrack-rpms is enabled for this system.
Repo rhel-6-server-rhev-agent-rpms is disabled for this system.
Repo rhel-6-server-cf-tools-1-rpms is disabled for this system.

tux:~ #

Da rhn-migrate-classic-to-rhsm rückblickend auf die bisherige Anleitung leider bislang nicht in der Lage ist die Migration von zusätzlichen RHN-Channels auf die passenden RHSM-Repositories vorzunehmen, habe ich hierfür Bugreport #1048530 geöffnet. Bis irgendwann ein vollständiger Migrationspfad in rhn-migrate-classic-to-rhsm implementiert ist, dürften die nachfolgenden Mapping-Tabellen mit den gängigsten RHN-Kanälen und entsprechenden RHSM-Repositories weiterhelfen:

Bisheriger RHN-Kanal Neues RHSM-Repository
rhel-i386-server-fastrack-6
rhel-x86_64-server-fastrack-6
rhel-6-server-fastrack-rpms
rhel-i386-server-optional-6
rhel-x86_64-server-optional-6
rhel-6-server-optional-rpms
rhel-i386-server-optional-fastrack-6
rhel-x86_64-server-optional-fastrack-6
rhel-6-server-optional-fastrack-rpms
rhel-i386-server-supplementary-6
rhel-x86_64-server-supplementary-6
rhel-6-server-supplementary-rpms
rhn-tools-rhel-x86_64-server-6 (entfällt)
rhel-x86_64-server-ha-6 rhel-ha-for-rhel-6-server-rpms
rhel-x86_64-server-ha-fastrack-6 rhel-ha-for-rhel-6-server-fastrack-rpms
Bisheriger RHN-Kanal Neues RHSM-Repository
rhel-i386-workstation-fastrack-6
rhel-x86_64-workstation-fastrack-6
rhel-6-workstation-fastrack-rpms
rhel-i386-workstation-optional-6
rhel-x86_64-workstation-optional-6
rhel-6-workstation-optional-rpms
rhel-i386-workstation-optional-fastrack-6
rhel-x86_64-workstation-optional-fastrack-6
rhel-6-workstation-optional-fastrack-rpms
rhel-i386-workstation-supplementary-6
rhel-x86_64-workstation-supplementary-6
rhel-6-workstation-supplementary-rpms
rhn-tools-rhel-x86_64-workstation-6 (entfällt)

Nach erfolgreicher Migration auf den Red Hat Subscription Manager können nun sowohl die Migrationspakete als auch die alten RPM-Pakete für RHN deinstalliert werden. Technisch betrachtet gibt es keine Probleme wenn die Pakete weiterhin installiert bleiben. Aber warum sollte unbenötigte Software auf einem System verbleiben - schließlich müssen bei Wartungsarbeiten auch diese Software-Komponenten mitaktualisiert werden...

tux:~ # yum remove yum-rhn-plugin rhn-setup rhnsd rhnlib subscription-manager-migration subscription-manager-migration-data

Da die Deinstallation des RPM-Pakets "rhnsd" gerne für etwas Schrecken bei den Administratoren sorgt: Der bisherige Systemdienst /etc/init.d/rhnsd wird durch /etc/init.d/rhsmcertd ersetzt (welcher Bestandteil des RPM-Pakets "subscription-manager" ist). Danach empfiehlt es sich noch die verbliebenen Sicherheitskopien der Konfigurationsdateien /etc/yum/pluginconf.d/rhnplugin.conf (Konfigurationsdatei des YUM-Plugins "rhnplugin") und /etc/sysconfig/rhn/up2date (generelle Konfigurationsdatei für das Red Hat Network) ebenfalls zu löschen:

tux:~ # rm -f /etc/yum/pluginconf.d/rhnplugin.conf.rpmsave /etc/sysconfig/rhn/up2date.rpmsave

Abschließend kann zum Vergleich nochmals, beispielsweise mit dem Paketmanagement-System YUM, eine Aktion wie yum search ausgeführt werden:

tux:~ # yum search kernel
Loaded plugins: product-id, security, subscription-manager
This system is receiving updates from Red Hat Subscription Management.

[...]
tux:~ #

Obige Ausgabe zeigt nun, dass das System mit dem Red Hat Subscription Manager registriert ist. Die Benutzung von YUM bleibt unverändert, dafür verändert sich die Verwaltung der Subskriptionen bzw. Systeme im Red Hat Customer Portal natürlich um so mehr - meines Erachtens zum Vorteil.

Weiterführende Links zu RHSM: