Anmerkung des Herausgebers:Dieser Artikel wurde geschrieben, als James Brigman Mitglied des Red Hat Accelerator-Programms war.
Red Hat Satellite bietet eine Möglichkeit, Red Hat Linux-Systeme mit neuen oder aktualisierten RPMs zu aktualisieren. Satellite hostet Repositories lokal, damit wir diese Updates schneller und für eine größere Anzahl von Clients erhalten können. Diese Funktion wird für unseren Softwareentwicklungsprozess wichtig, da wir virtuelle Maschinen im Dienste des Entwicklungsprozesses schnell erstellen und zerstören müssen.
Unser Satellitenserver wird oft während des Entwicklungszyklus verwendet, daher müssen wir wissen, dass er richtig funktioniert. Wenn Probleme auftreten, müssen wir sie schnell erkennen und lösen, damit die Entwickler ihre Arbeit ungestört fortsetzen können.
Dieser Artikel beschreibt die Höhepunkte des Prozesses und enthält Lehren aus der Aktualisierung und Aktualisierung meines Red Hat Satellite Servers.
Eine wichtige Warnung
Wenn Sie Satellite als virtuelle Maschine ausführen (in welchem VM-System Sie auch immer verwenden), erstellen Sie ein Backup oder einen Snapshot. Wenn Sie Satellite auf Red Hat Enterprise Linux mit Bare Metal ausführen, erstellen Sie ein vollständiges Backup. Sie möchten in der Lage sein, zum ursprünglichen Zustand zurückzukehren, wenn Sie auf Probleme stoßen.
[Möchten Sie Red Hat Enterprise Linux ausprobieren? Jetzt kostenlos herunterladen.]
Aktualisieren vs. upgraden
Zeit vergeht. Diese Tatsache bedeutet, dass für diejenigen von uns in der Systemadministration das Aktualisieren von Software eine ständige Aktivität ist. Wir aktualisieren aus verschiedenen Gründen, sei es, um Support für die von uns ausgeführten Produkte zu erhalten, um benötigte Funktionen zu erhalten (und beizubehalten) oder um die Leistung zu verbessern.
Für Satellite die Begriffe aktualisieren und aktualisieren haben sehr spezifische Bedeutungen. Aktualisierung ist, wenn Sie ein Punkt-Update vornehmen an die vorhandene Software. Für diese Diskussion, Aktualisierung hat uns von Red Hat Satellite 6.4.2 auf 6.4.4 gebracht. Beide sind immer noch Satellite 6.4 (Hauptversion), aber die zweite wurde von .2 auf .4 (Nebenversion) geändert.
Upgrade ist, wenn Sie den Satellite-Server von einer früheren Hauptversion auf eine aktuellere Hauptversion umstellen. Nach dem Update habe ich dann daran gearbeitet, den Server von der Hauptversion 6.4 auf die Hauptversion 6.5 zu aktualisieren.
Am Ende des Prozesses wurde unser Satellitenserver von 6.4.2 auf 6.5.2.1 gebracht.
Upgrade und Aktualisierung
Der Upgrade- oder Update-Prozess umfasst vier Hauptschritte. Sehen wir uns beide an.
Ein aufgeräumter Satellit
Vor dem Aktualisieren oder Upgraden steht Ihnen ein Dienstprogramm zur Verfügung, das den aktuellen Status Ihres Satelliten überprüfen und Sie darüber informieren kann, wie bereit Sie für die Durchführung des Updates oder Upgrades sind. Dieses Dienstprogramm ist foreman-maintain
und wird in der Satellite-Dokumentation beschrieben.
Sie können access.redhat.com mit dem Begriff „Upgrade Satellite 6.5“ durchsuchen, um diesen Link zu finden. Unter Inhaltstypfilter , wählen Sie Dokumentation aus um Ihre Suche einzuschränken. Unter dieser URL finden Sie wichtige Definitionen, Voraussetzungen und Upgrade-Pfade.
Die in diesem Dokument aufgeführten Schritte gipfeln in der Ausführung von foreman-maintain
Befehl im Upgrade-Modus. Dieser Befehl durchläuft Ihren Satellite-Server und prüft, ob er vorher aktualisiert werden kann Sie führen das eigentliche Update durch. Der Befehl, den ich für beide verwendet habe update und aktualisieren war das gleiche, mit unterschiedlichen Zielversionen:
# /usr/bin/foreman-maintain upgrade check --target-version 6.4.z
Natürlich variiert die korrekte Syntax für Ihren Satellite.
Durch Aufgaben beauftragt werden
Meine Upgrade-Prüfung ist mehrmals fehlgeschlagen. Der wichtigste Grund ist, dass ich für die von mir verwendete Version Aufgaben von vor langer Zeit übrig hatte, die nicht im erforderlichen Zustand abgeschlossen wurden. Ich konnte diese Aufgaben mit einem foreman-rake
erledigen Befehl:
# /usr/bin/foreman-rake foreman_tasks:cleanup TASK_SEARCH='label = Actions::Katello::Repository::MetadataGenerate' STATES='running,pending,stopped' VERBOSE=true
Wie foreman-maintain
Befehl oben, Ihr foreman-rake
Befehl kann je nach Ausgabe Ihrer Upgrade-Prüfung abweichen.
Der Punkt ohne Wiederkehr
Schließlich erreichte ich den Punkt, an dem ich bereit war, das Upgrade selbst durchzuführen. In einem klugen Schachzug verwenden Sie denselben Befehl, um das eigentliche Upgrade durchzuführen, jedoch mit einer Änderung. Das Wort check
wird zu run
:
# /usr/bin/foreman-maintain upgrade run --target-version 6.4.z
Mein Upgrade war erfolgreich. Dieses Ergebnis war nicht zuletzt auf die Tests und Überprüfungen vor dem Upgrade zurückzuführen, die dem Systemadministrator zur Verfügung standen. Dieser Schritt ist eine wichtige Überlegung für ein geschäftskritisches System wie Satellite.
Überprüfung nach dem Upgrade
Das upgrade
Der Befehl selbst gibt Ihnen eine nützliche Ausgabe. Diese Ausgabe findet sich im Protokoll, das von foreman-maintain
erstellt wird :
=============================================
Upgrade Step 3/10: katello:clean_backend_objects. This may take a long while.
0 orphaned consumer id(s) found in candlepin.
Candlepin orphaned consumers: []
0 orphaned consumer id(s) found in pulp.
.....
=============================================
Upgrade Step 10/10: katello:upgrades:3.11:clear_checksum_type.
foreman-rake upgrade:run finished successfully!
Upgrade completed!
Das Protokoll ist wichtig und nützlich, aber es gibt andere Prüfungen, die Sie durchführen können, um den Zustand Ihres Satellite-Servers zu überprüfen, wie zum Beispiel:
# /usr/bin/foreman-maintain health check
Die Ausgabe dieses Befehls sieht so aus (angepasst angepasst):
Running ForemanMaintain::Scenario::FilteredScenario
Check for verifying syntax for ISP DHCP configurations: [SKIPPED]
DHCP feature is not enabled
----------------------------------------------------------------
Check whether all services are running: [OK]
----------------------------------------------------------------
Check whether all services are running using hammer ping: [OK]
----------------------------------------------------------------
Check for paused tasks: [OK]
----------------------------------------------------------------
Weitere Zustandsprüfungen nach dem Upgrade
Hier sind drei weitere zusätzliche Überprüfungen, um den Zustand Ihres Satellite-Servers nach dem Upgrade zu überprüfen. Der erste prüft, ob die Satelliten-APIs verfügbar sind und antworten:
# /usr/bin/hammer ping
candlepin:
Status: ok
Server Response: Duration: 19ms
candlepin_auth:
Status: ok
Server Response: Duration: 21ms
pulp:
Status: ok
Server Response: Duration: 72ms
pulp_auth:
Status: ok
Server Response: Duration: 36ms
foreman_tasks:
Status: ok
Server Response: Duration: 5ms
Der zweite prüft den Servicestatus mit foreman-maintain
Befehl, der die wichtigsten Dienste mit systemctl
überprüft Befehle:
# /usr/bin/foreman-maintain service status
Die Ausgabe ist zu ausführlich, um sie hier aufzunehmen, aber Sie erkennen sie an der Verwendung von systemctl
.
Der dritte Befehl prüft, ob Sie ein Repository synchronisieren können:
Content --> Product --> Repository --> <choose repo to sync>
Schlussfolgerung
Das Upgrade eines Red Hat Satellite Servers ist schon eine Herausforderung genug, wenn es sich um eine unternehmenskritische Komponente Ihres Unternehmens handelt. Nutzen Sie alle verfügbaren Möglichkeiten, um zu überprüfen, ob der Server für die Aktualisierung bereit ist, und erstellen Sie Sicherungen, damit Sie bei Bedarf ein Rollback durchführen können. In meinem Fall habe ich sogar Fälle mit Support eröffnet, um die Ergebnisse der Vor- und Nachprüfungen zu besprechen, und habe großartige Hilfe erhalten.
Mein Upgrade hat sich als hilfreich erwiesen. Die Last auf meinem Satellite-Server wurde leicht reduziert, die Leistung leicht verbessert und viele alte, festgefahrene Aufgaben wurden gelöscht. Der vielleicht wichtigste Vorteil bestand darin, sich besser mit Satellite und den wichtigen Befehlen vertraut zu machen, die zur Erfüllung der Aufgabe erforderlich sind.