CentOS 8 ist am Ende seines Lebenszyklus (EOL): Und jetzt?
Es gab viele Gründe, warum CentOS als alternative Linux-Plattform zu Red Hat Enterprise Linux (RHEL) genutzt wurde. CentOS wurde ursprünglich als Nachfolgeversion von RHEL entwickelt, die ohne Support kostenfrei genutzt werden konnte. So wurde CentOS zum De-facto-Standard für viele Unternehmen, da es abgesehen von Namen und Preis identisch zu RHEL ist.
Ursprünglich war CentOS ein Gemeinschaftsprojekt. Allerdings entwickelte Red Hat im Laufe der Zeit wesentliche Bestandteile und übernahm schließlich die Wartung der Linux-Variante komplett. So konnte Red Hat die Ausrichtung des CentOS-Projekts ändern, was Nutzer:innen, die ihre Produktionsabläufe über CentOS laufen lassen, verärgerte.
Mit der Umstellung auf „Stream“ hat Red Hat CentOS 8 von einer Downstream-Version (nach RHEL) zu einer Upstream-Version (vor RHEL) gemacht. Das bedeutet, dass CentOS Stream statt einer stabilisierten Version nun eine Art Entwicklungs-/QA-Version ist, was für den Einsatz von Produktionssystemen in den meisten Unternehmen inakzeptabel ist.
Aktuell kursiert eine hohe Zahl an Schwachstellen im System, deren Zahl täglich wächst. Es muss Abhilfe geschaffen werden, beispielsweise durch eine Neuinstallation eines Betriebssystems, die Aktualisierung auf CentOS Stream 8 oder die Migration auf eine andere, nachgelagerte RHEL-Variante (von denen es heute viele gibt).
Updates nicht verfügbar, der Prozess ist unterbrochen
Die Fehlermeldung: Der Download der Metadaten für das Repository ‚appstream‘ ist fehlgeschlagen: Eine interne Mirrorlist kann nicht erstellt werden: Keine URLs in der Mirrorlist vorhanden.
CentOS 8 hat nicht nur sein Lebensende erreicht, sondern hat auch die letzten Updates im CentOS-Tresor archiviert und die Pakete von den Mirror entfernt. Dies führte zu einer Änderung im Update-Manager für alle Systeme, die die internetbasierten Mirrors verwenden. Wenn Sie ein internes Proxy-System verwenden, um die Updates bereitzustellen, werden Sie möglicherweise gar nicht merken, dass Sie keine Updates für CentOS 8 mehr erhalten.
Das bedeutet, dass viele CentOS 8-Hosts nicht auf die neuesten verfügbaren Pakete aktualisiert werden können. Der erste Task in unserem Beispielmodul behandelt dieses Problem in großem Umfang. Systeme sollten vor der Migration auf eine andere Linux-Variante auf die neueste Version von CentOS 8 aktualisiert werden, die im CentOS 8-Depot verfügbar ist.
Im Beispielmodul aktualisiert der Task to_centos_vault die yum-Repos so, dass sie auf den CentOS 8-Datenspeicher verweisen, so dass Sie die neuesten verfügbaren Updates erhalten. Auch wenn es keine künftigen Updates geben wird, werden Sie so zumindest die neuesten Updates erhalten, die bis zum Zeitpunkt des EOL verfügbar waren.
Hinweis: Wenn Sie einen gewünschten Status (z. B. Puppet Code) verwenden, um die aktuellen yum-Repos auf Ihren Systemen zu verwalten, müssen Sie dies ggf. vor der Migration deaktivieren und Änderungen für das neue Zielbetriebssystem vornehmen, die nach der Migration angewendet werden.
Welche Migrationsmöglichkeiten haben Sie?
Hier finden Sie die zwei gängigsten Optionen. Das Beispielmodul enthält Tasks zur Konvertierung in jede der folgenden Optionen, die in großem Umfang genutzt werden können.
1. CentOS 8-Stream
Wenn Sie mit einem Upstream-Release von RHEL zurechtkommen, ist CentOS Stream 8 der einfachste Weg. Es ist immer noch EL8 und nah genug an RHEL, allerdings ein paar Schritte voraus. Achtung: Nicht ideal für Produktions-Workloads.
2. EL8-Downstream-Alternativen (AlmaLinux 8 & Rocky Linux 8)
Sowohl Rocky als auch Alma sind nahezu identische Alternativen zu CentOS8. Sie sind beide Downstream-Varianten von RHEL, die von der Community unterstützt werden.
Automatisieren Sie Ihre CentOS-Migration mit Puppet
Skalierbarkeit, Konsistenz, Geschwindigkeit und geringeres Risiko ist die Antwort, wieso Sie auf Puppet setzen sollten. Einfach ausgedrückt: Wenn Sie diese Migrationen für eine Vielzahl von Systemen manuell durchführen, können Sie versehentlich Schritte übersehen oder andere Inkonsistenzen feststellen, die dazu führen können, dass Ihre Systeme in einem instabilen oder nicht mehr reparablen Zustand sind.
Die Verwendung von Puppet Tasks bietet eine effiziente und konsistente Möglichkeit, diese Migrationsaufgaben in großem Umfang durchzuführen. Außerdem wird die Ausgabe der Tasks zentral gespeichert, um Berichte zu erstellen und Audits zu verfolgen. Wenn Sie diese Migrationen einzeln über eine Shell ausführen, geht die Ausgabe in der Regel verloren, sobald Sie das Terminal schließen, was bei großen Migrationsprojekten, die nachverfolgt werden müssen, oder bei Migrationen, die von einem Team aus vielen Personen durchgeführt werden, Schaden verursachen kann.
Wenn Sie Hunderte oder sogar Hunderttausende von Systemen migrieren müssen, ist eine manuelle Migration oder die Verwendung von Skripten auf jedem Host nahezu unmöglich. Zumindest wird es sehr viel Zeit in Anspruch nehmen, und Sie sind möglicherweise mehreren Schwachstellen ausgesetzt, bevor Sie das Projekt abschließen können. Mit Hilfe von Tasks lässt sich der Zeitaufwand für eine Migration in großem Maßstab erheblich reduzieren.
Mögliche Gefahren bei der weiteren Verwendung von CentOS 8:
Obwohl dieses Beispielmodul voll funktionsfähig ist und ohne Probleme funktionieren sollte, gibt es ein paar Vorbehalte. Wenn Sie heute CentOS 8 verwenden, sind Sie wahrscheinlich daran gewöhnt, ohne offiziellen Support zu arbeiten.
1. Verwendung auf eigene Gefahr ohne Support
Es gibt weder von Puppet noch uns Support für diesen Workflow oder dieses Modul.
2. Anwendungen unterstützen möglicherweise das Zielbetriebssystem nicht
Überprüfen Sie Ihre Anwendungen. Dies wird das Basis-Betriebssystem konvertieren. Obwohl es sich technisch gesehen immer noch um EL8 handelt, können Sie Probleme mit Anwendungen haben, die das Zielbetriebssystem nicht unterstützen.
3. Migration ohne Backup-Plan
Verwenden Sie vor der Migration nach Möglichkeit Snapshots und Backups, um gelöschte Daten o. ä. wiederherstellen zu können.
Das „centos8migrate“-Modul
Das Puppet-Beispielmodul finden Sie hier auf GitHub. Mit Puppet Enterprise können Sie dieses Modul einfach zu Ihrem Puppetfile in Ihrem aktuellen Control-Repository hinzufügen, damit die Tasks in der PE-Tasks-Schnittstelle verfügbar werden: Dieses Modul wurde mit einer Standardinstallation von CentOS 8.3 „Server mit GUI“ getestet.
Diese Puppet Tasks sind einfach, aber funktional. Sie sollten wahrscheinlich zu Puppet Plans für den Einsatz in der Produktion erweitert werden, was eine bessere Fehlerbehandlung oder das Hinzufügen von Workflows für Ihre Snapshot/Backup-Prozesse beinhalten könnte. Zumindest können sie als Bausteine für eine robustere Lösung verwendet werden.
Die Tasks umfassen:
centos8migrate::to_centos_vault
Dieser Task aktualisiert die YUM-Repos so, dass sie auf den CentOS-8-Vault verweisen, so dass Sie auf die letzten verfügbaren Updates aktualisieren können. Nach der Ausführung dieser Aufgabe, gefolgt von einem yum-Update, sollten Sie ein System haben, auf dem CentOS 8.5 v2111 läuft.
centos8migrate::to_centos_stream
Dieser Task konvertiert Ihr System zu CentOS Stream 8. Es ist die am wenigsten einschneidende Option, allerdings nicht ideal, wenn Stream für Sie keine Produktionsoption ist. Dann sollten Sie alternativ eine der nachfolgenden Tasks in Betracht ziehen, um auf eine andere Linux-Variante zu konvertieren.
centos8migrate::to_rocky
Dieser Task konvertiert CentOS 8 Systeme zu Rocky Linux 8.
centos8migrate::to_alma_linux
Dieser Task konvertiert CentOS 8-Systeme nach AlmaLinux 8.
Hinweis: Als Vorsichtsmaßnahme sollten Sie die periodischen Puppet-Prozesse vorübergehend deaktivieren, während diese Migrationsaufgaben ausgeführt werden. Yum lässt sich normalerweise sperren, aber Sie könnten in eine Race Condition geraten. Stoppen Sie einfach den Puppet-Agent, bevor Sie diese Tasks ausführen, aber stoppen Sie nicht den pxp-Agent! Sie können die Aufgaben weiterhin mit dem pxp-Agent ausführen, und der Puppet-Agent sollte nach dem Neustart der Migration (als Teil des Standardprozesses) neu gestartet werden.
Puppet-Lösungen und -Dienste
Wenn Ihr Projekt zu groß ist, um es allein zu bewältigen, oder wenn Sie wissen möchten, wie Sie Ihre Infrastruktur konsistenter und in größerem Umfang verwalten können, helfen wir Ihnen als Ihre IT-Beratung weiter.
Puppet Enterprise und andere Puppet-Produkte und -Dienstleistungen können Ihnen helfen, Ihren Aufwand durch automatisierte Workflows deutlich zu reduzieren. Lassen Sie uns gemeinsam besprechen, wie Sie Ihr Ziel einer stabilen, konformen und automatisierten Infrastruktur erreichen können – egal ob vor Ort oder in der Cloud! Viel Erfolg!
Wir hoffen, dass diese Informationen helfen, wenn Sie ein CentOS 8-Migrationsprojekt planen oder bereits durchgeführt haben! Wenden Sie sich an bitbone, wenn Sie Fragen dazu haben, wie Automatisierung weiterhelfen kann.
Gastbeitrag von
Paul Reed, Principal Solutions Engineer bei Puppet
Hier lesen Sie den Original-Artikel in Englisch im Puppet-Blog
Kommentar von Marius Fehlemann zur CentOS-Migration:
Auch Red Hat bietet Lösungen zur Migration von CentOS Linux auf ein anderes Betriebssystem, z. B. Red Hat Enterprise Linux. Weitere Informationen dazu erhalten Sie hier: https://www.redhat.com/de/technologies/linux-platforms/enterprise-linux/centos-migration oder in einem persönlichen Beratungsgespräch mit einem #ITSorgenfreimacher.