Convert2RHEL ist ein Red Hat Dienstprogramm, das Betriebssysteme konvertiert, die Red Hat Enterprise Linux (RHEL) ähnlich sind oder davon abgeleitet sind wie z. B. CentOS Linux und Oracle Linux. Eine vollständige Liste der unterstützten Betriebssysteme finden Sie in diesem Dokument. Weitere Informationen finden Sie in den Blogeinträgen von Terry Bowling hier und hier über Oracle Linux.

Red Hat Satellite 6.10 bot erstmals die Möglichkeit von Bulk-Convert2RHEL-Vorgängen. Lesen Sie mehr darüber in meinem Blog. Satellite 6.11 baut auf diese Funktionen in zwei Arten auf:

  1. Eine Ansible-Rolle automatisiert die Konfiguration/Vorbereitung des Satellite-Servers für Convert2RHEL.

  2. Ein Ansible-Playbook automatisiert die Host-Konvertierungen.

Das folgende Flussdiagramm bietet eine allgemeine Übersicht über die Aufgaben, die für die Ausführung eines Bulk-Convert2RHEL-Vorgangs in Satellite 6.11 erforderlich sind.

 

Flowchart of tasks required to perform a bulk Convert2RHEL operation

Wenn Sie bereit sind, registrieren Sie den/die Centos/Oracle Linux-Host(s) bei Satellite und planen Sie einen Job, um Ihre Hosts zu RHEL zu konvertieren.

Beachten Sie, dass die Ansible-Rolle mit einem separaten Ansible-Server manuell auf den Satellite-Server angewendet werden kann.

Hier werden alle Schritte beschrieben, die für die Implementierung dieser neuen Automatisierung erforderlich sind.

Vorbereiten des Satellite-Servers

Befolgen Sie zunächst diese Anweisungen, um die enthaltenen Ansible-Rollen zu importieren.

Wechseln Sie zunächst zu Konfigurieren > Rollen.

 

first go to Configure > Roles

Klicken Sie auf „Importieren…“.

 

Click on Import

Klicken Sie auf „Alle auswählen“ und dann auf „Abschicken“.

 

Click on Select All and then Submit

Als Nächstes müssen wir Variablen für die Ansible-Rolle erstellen, bevor wir sie auf dem Satellite-Server ausführen.  Diese Variablen teilen der Ansible-Rolle mit, wie Sie den Bulk-Convert2RHEL-Vorgang auf Ihrem Satellite-Server konfigurieren möchten. Dazu gehören die Angabe eines Subskription-Manifests, einer Organisation, eines Standorts, der Anmeldedaten des Administrators usw.

Ich habe festgestellt, dass die Konfiguration der Ansible-Rollenvariablen am einfachsten und schnellsten funktioniert, wenn man das Befehlszeilendienstprogramm Hammer auf dem Satellite-Server verwendet. Sie können die Ansible-Rollenvariablen auch über die Satellite-Webbenutzeroberfläche konfigurieren. 

Auf diesem speziellen Satellite-Server definiere ich die folgenden Variablen.

Variable

Value

satellite_rhel_wait_for_syncs

true

satellite_manifest_path

/usr/share/satellite/manifest_satellite_20220815T193102Z.zip

satellite_organization

Acme Org

satellite_password

Ha ha nein, das nicht

satellite_username

myee

satellite_server_url

https://ip-172-31-29-4.us-west-1.compute.internal

satellite_validate_certs

true

satellite_content_rhel_enable_rhel7

true

satellite_content_rhel_enable_rhel8

true

So erstellen Sie die Ansible-Rollenvariablen mit dem Dienstprogramm Hammer.

satellite_rhel_wait_for_syncs

Die Ansible-Rolle konfiguriert und synchronisiert Repositorys, die für die Ausführung des Bulk-Convert2RHEL-Vorgangs erforderlich sind. Die Variable satellite_rhel_wait_for_syncs weist den Vorgang an, auf die Synchronisierung der Repositorys zu warten.

Geben Sie Folgendes in die Befehlszeilenschnittstelle des Satellite-Servers ein, während Sie als root angemeldet sind:

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel - -variable satellite_rhel_wait_for_syncs --variable-type boolean --default-value false --override true

satellite_manifest_path

Wenn die Ansible-Rolle ausgeführt wird, lädt sie das Subskriptions-Manifest hoch und stellt sicher, dass alle Ihre neuen Hosts entsprechend lizenziert sind. Wenn Sie bereits ein gültiges Manifest hochgeladen haben, müssen Sie dies leider erneut tun.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_manifest_path --variable-type string --default-value "/usr/share/ satellite/manifest_satellite_20220815T193102Z.zip" --override true

satellite_organization/usr

Meine Satellite-Organisation ist „Acme Org“.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_organization --variable-type string --default-value "Acme Org" -- override true

satellite_password

Für die Ansible-Rolle sind die Anmeldedaten des Satellite-Administrators erforderlich. Geben Sie hier das Passwort ein.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_password --variable-type string --default-value "YOUR_ADMIN_PASSWORD" --override true

Hinweis: Um die Verwendung von Passwörtern zu vermeiden, können Sie stattdessen persönliche Zugriffstoken einrichten.

 

To avoid using passwords you can set up Personal Access Tokens instead

satellite_username

Geben Sie hier den Admin-Benutzernamen ein.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_username --variable-type string --default-value "myee" --override true

satellite_server_url

Die Satellitenserver-URL ist die URL, auf die die Hosts mit dem Dienstprogramm Curl zugreifen müssen.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_server_url --variable-type string --default-value "https://ip -172-31-29-4.us-west-1.compute.internal" --override true

satellite_validate_certs

Dieser Wert sollte auf true festgelegt werden.

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_validate_certs --variable-type boolean --default-value true --override true

satellite_content_rhel_enable_rhel7

Diese Variable gibt an, dass die Ansible-Rolle RHEL7-Inhalte synchronisieren soll, um die Konvertierung von Centos 7- (oder Oracle-)Hosts in RHEL7 zu ermöglichen. Wenn Sie nicht möchten, dass RHEL7-Inhalte synchronisiert werden, verwenden Sie diese Variable, um false 

 anzugeben. hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_content_rhel_enable_rhel7 --variable-type boolean --default-value true --override true

satellite_content_rhel_enable_rhel8

Diese Variable gibt an, dass die Ansible-Rolle RHEL8-Inhalte synchronisieren soll, um die Konvertierung von Centos 8- (oder Oracle-)Hosts in RHEL8 zu ermöglichen. Wenn Sie nicht möchten, dass RHEL8-Inhalte synchronisiert werden, verwenden Sie diese Variable, um false  anzugeben. 

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_content_rhel_enable_rhel8 --variable-type boolean --default-value true --override true

Sie können in der Web-Benutzeroberfläche überprüfen, ob Ihre Variablen richtig festgelegt sind. Wechseln Sie zum Untermenü Ansible-Variablen.

 

Go to the Ansible Variables sub-menu

Blättern Sie durch die Variablen, bis Sie die Variablen finden, die Sie gerade erstellt haben.

 

Ansible variables

Jetzt müssen wir Satellite so konfigurieren, dass die Ausführung von Remote-Ausführungsjobs gegen sich selbst ermöglicht wird.

Hinweis: Dieser Schritt ist nicht erforderlich, wenn Sie bereits Remote-Ausführungsjobs für den Satellite-Server ausführen können. 

Melden Sie sich beim Satellite-Server als root an und führen Sie den folgenden Befehl aus:

satellite-installer \ --foreman-proxy-plugin-remote-execution-ssh-install-key true

Die Ausgabe sieht wie folgt aus.

 

Satellite installer sample output

Als Nächstes wenden wir die Ansible-Rolle auf den Satellite-Server an.

Klicken Sie auf Hosts > Alle Hosts.

 

Click on Hosts > All Hosts

Bearbeiten Sie Ihren Satellite-Server.

 

Edit your Satellite server

Klicken Sie auf die Registerkarte Ansible Roles.

 

Click on the Ansible Roles tab

Die Rolle Convert2RHEL befindet sich auf der zweiten Seite des Untermenüs. Klicken Sie auf das +, um Ihrem Satellite-Server die Rolle redhat.satellite.convert2rhel zuzuweisen.

 

The Convert2RHEL roles is on the second page

Klicken Sie dann auf „Senden“.

 

Click Submit

Sie werden dann zur Seite mit den Hostinformationen weitergeleitet. Klicken Sie auf die Schaltfläche „Remote-Job planen“ und wählen Sie „Ansible-Rollen ausführen“.

 

Click on the Schedule Remote Job button and select Run Ansible roles

Sie werden zu einer Seite weitergeleitet, die den Status des Jobs anzeigt. Klicken Sie auf den Satellite-Host, um den Echtzeitstatus des Jobs anzuzeigen.

 

Click on the Satellite host to see the real-time status of the job

Hier können Sie jede Aufgabe im ausgeführten Job sehen.

 

Here you can see each task in the job being executed

Hinweis: Die Ansible-Rolle synchronisiert unter anderem die erforderlichen Inhalte, erstellt Hostgruppen und Aktivierungsschlüssel. Satellite 6.11 weist einen Fehler auf, bei dem der zur Registrierung von CentOS 7-Hosts erstellte Aktivierungsschlüssel „Convert2RHEL7“ das Convert2RHEL8-Repository aktiviert. Um diesen Fehler zu umgehen, müssen Sie dieses Repository im Aktivierungsschlüssel „convert2rhel_centos7“ überschreiben.

 

To work around this bug, you must override this repo in the "convert2rhel_centos7" activation key

Konvertierung ausführen

WICHTIG: Vor dem Ausführen der Konvertierung müssen die Kandidatenhosts auf dem neuesten Stand sein und mit dem neuesten Kernel neu gestartet werden. 

Zuerst müssen wir unsere Hosts für die Konvertierung registrieren. In diesem Fall konvertiere ich CentOS7-Hosts. Klicken Sie auf Hosts > Host registrieren.

 

Click on Hosts > Register Host

Auf meinen CentOS-Testhosts habe ich die Zertifizierungsstellendateien nicht vom Satellite-Server kopiert. Weitere Informationen dazu, wie das funktioniert, finden Sie hier.

Wählen Sie im Menü Host registrieren 1) die Hostgruppe „CentOS 7-Konvertierung“, dann 2) „Unsicher“ und dann 3) „Erweitert“ aus. Mit der Option „Unsicher“ kann das Skript zunächst ausgeführt werden, ohne dass das selbstsignierte Zertifikat überprüft wird. Die anschließende Kommunikation ist vollständig gesichert. Wenn Sie die Methode „Unsicher“ vermeiden möchten, lesen Sie hier mehr über das Importieren von Zertifikaten.

 

Register Host

Klicken Sie anschließend auf „Erweitert“.

Führen Sie die folgenden Aufgaben im Kontext „Erweitert“ des Menüs „Host registrieren“ aus.

  1. Überprüfen Sie, ob die „Activation Keys“ von der Hostgruppe „convert2rhel_centos7“ geerbt wurden. Sie sollten hier nichts anklicken müssen.

  2. Klicken Sie auf „Generieren“. Dadurch wird das curl-Skript generiert, das Sie kopieren und in die CLI des CentOS-Hosts einfügen.

  3. Klicken Sie auf die Schaltfläche Kopieren, um das curl-Skript zu kopieren. 

 

Register Host Advanced Tab

Melden Sie sich nun bei einem Ihrer Kandidaten-Hosts an. Exportieren Sie das korrekte Gebietsschema Ihres Hosts.

export LANG=en_US.UTF-8

Fügen Sie das curl-Skript ein und führen Sie es aus. Hier ist eine Beispielausgabe.

 

Some example output

Wiederholen Sie diese Aufgabe für alle Ihre Kandidaten-Hosts.

Im Menü Hosts werden alle Ihre CentOS-Hosts angezeigt, die bei Satellite registriert sind.

 

In the Hosts menu, you see all your CentOS hosts registered to Satellite.

Führen Sie die folgenden Aufgaben aus, um den Vorgang Convert2RHEL zu starten.

  1. Wählen Sie die Kandidaten-Hosts aus.

  2. Klicken Sie auf „Aktion auswählen“ und wählen Sie „Remote-Job planen“ aus.

 

Click on "Select Action" and select "Schedule Remote Job".

Führen Sie im Menü Job-Aufruf die folgenden Aufgaben aus.

  1. Wählen Sie im Dropdown-Menü „Job-Kategorie“ die Option „Convert 2 RHEL“ aus.

  2. Wählen Sie im Dropdown-Menü „Activation Key“ die Option „convert2rhel_rhel7“ aus.

  3. Klicken Sie auf „Senden“, um den Bulk-Convert2RHEL-Vorgang zu starten.

 

Click "Submit" to start the bulk Convert2RHEL operation.

Sie werden zum Menü „Job-Überblick“ weitergeleitet, in dem Sie den Echtzeitstatus des Jobs auf jedem Host anzeigen können, indem Sie auf den Host klicken.

 

You’ll be redirected to the "Job Overview" menu

Dies ist die Echtzeitansicht des Jobs.

 

Here’s the real-time view of the job.

Das Endergebnis: Alle Hosts wurden gleichzeitig in RHEL konvertiert!

 

The final result, all hosts converted to RHEL at once!

Weitere Informationen finden Sie in der offiziellen Convert2RHEL-Dokumentation hier.

 


About the author

As a Senior Principal Technical Marketing Manager in the Red Hat Enterprise Linux business unit, Matthew Yee is here to help everyone understand what our products do. He joined Red Hat in 2021 and is based in Vancouver, Canada.

Read full bio