Wir betreiben einen Produktionsserver, der auf Ubuntu 9.10 Karmic Koala basiert. Der Kernel ist fast auf dem neuesten Stand (2.6.38.2-grsec-xxxx-grs-ipv6-64), aber das karmic- Paket-Repository ist jetzt lächerlich veraltet, z. Nginx ist 0.7.62 - wirklich fehlerhaft - während der neueste Stall 1.0.x ist !!
Außerdem hat Karmic gerade sein Lebensende erreicht.
Diese Frage: Best Practices, um UNIX-Pakete auf dem neuesten Stand zu halten? sieht ähnlich aus, enthält aber nur einige Vorschläge zu Paketmanagern; überhaupt nicht was ich brauche!
Die Optionen, die ich sehe, sind:
- Holen Sie sich eine neue Maschine, installieren Sie sie von Grund auf neu, migrieren Sie
- Distributions-Upgrade
- Verwenden Sie ein anderes Repository ( Launchpad / ppa / backport / pinning ).
- Bau dein eigenes
Die Nachteile von 1. liegen auf der Hand.
Ich wage es jedoch nicht, einen Dist-Upgrade-Pfad zu erstellen, da Ausfallzeiten und mögliche katastrophale Folgen für einen Produktionsserver einfach nicht vorhersehbar sind und derzeit hauptsächlich meine eigenen erforderlichen Pakete neu erstellen. Aber ich bin sicher, ich könnte einige vermissen.
Mir ist nicht wirklich klar, welche Risiken (Stabilität / Kompatibilität) bei der Verwendung von Ubuntu-Backports bestehen. Außerdem ist für 9.10 offiziell nichts mehr vorgesehen. Launchpad sind individuelle Builds, ähnliche Fragen - wie besser ist das, als eigene zu kompilieren.
Das Erstellen von Paketen scheint in Ordnung zu sein, aber: 1. Manchmal habe ich Probleme, die richtigen ./configure-Optionen zu reproduzieren, um meine vorhandenen Konfigurationsdateien wiederzuverwenden. 1. Ich bin sicher, dass es Unmengen von Paketen und Abhängigkeiten gibt, die jetzt ziemlich veraltet sind und möglicherweise als Quelle dienen von Fehlern
Endlich ... was ist mit 'alten' Paketen in einer aktuellen Distribution? Ich denke, es gibt keinen anderen Weg, als sie selbst wieder aufzubauen? Ist eine Kombination aus 2. und 4. endlich der beste Weg?
Gibt es einen objektiven Konsens darüber, wie dies am besten funktioniert, oder warum einige meiner Optionen in Ordnung / nicht in Ordnung sind?
Wenn dies wirklich nicht der Fall ist, werde ich akzeptieren, dass die Frage geschlossen wird, bevor ein endloser Thread erstellt wird!
Antworten:
Die Pflege Ihrer eigenen Distribution ist eine Menge Arbeit. Selbst wenn Sie die Backports pflegen, werden Sie bald von Sicherheitsproblemen überwältigt sein, die behoben werden müssen, und müssen Bibliotheken auf niedriger Ebene abrufen, um Ihre Software weiter zu aktualisieren, was andere Probleme verursachen könnte (ich unterhalte Server, auf denen 6 Jahre alte Distributionen ausgeführt werden) kein Spaß).
Ein Upgrade ist im Allgemeinen eine gute Lösung.
do-release-upgrade
ist gut gemacht und Sie sollten in der Lage sein, ohne Probleme zu aktualisieren (insbesondere wenn Sie nur offizielle Pakete verwendet haben).Meine Lieblingslösung könnte jedoch der Neuinstallationspfad sein. Insbesondere sollten Ihre Server mit einem Konfigurationsverwaltungssystem wie Puppet, Cfengine oder Chef verwaltet werden. Wenn alle Ihre Konfigurations- / Paketanforderungen mit einem solchen Tool angegeben werden und Ihre Daten auf einer separaten Partition sicher sind, ist eine schnelle Neuinstallation viel einfacher. Sie installieren einfach eine neue Distribution, ohne die Datenpartitionen zu löschen, und führen dann das Konfigurationsverwaltungstool aus, um Ihre Pakete / Konfigurationen zurückzusetzen. Ich glaube, dies ist der sauberste Weg, insbesondere wenn Sie mehrere Server verwalten müssen.
Wenn Sie nicht offizielle Pakete verwenden, möchten Sie diese möglicherweise vor dem Upgrade / der Neuinstallation identifizieren. Mithilfe der Wartungsprüfung können Sie die Pakete identifizieren, die nicht offiziell von Ubuntu verwaltet werden:
Wenn Sie neu installieren möchten, können Sie auch die Liste der installierten Pakete exportieren:
und Ihre Debconf-Datenbank:
Da Sie derzeit Karmic verwenden, ist ein Upgrade auf Lucid, eine LTS-Version, die bis 2015 für die Hauptserverpakete noch unterstützt wird, möglicherweise nicht zu gewalttätig. Dies sollte Ihnen genügend Zeit lassen, um eine funktionsfähige automatisierte Installation für die Zukunft einzurichten.
Wenn Sie nach Launchpad-Paketen fragen, meinen Sie vermutlich PPAs. Es gibt Unmengen verschiedener PPAs. Einige sind experimentell, andere stabil. Einige werden von offiziellen Ubuntu-Entwicklern gepflegt, andere von Leuten, die kaum wissen, wie man ein Paket richtig macht. Es ist im Allgemeinen schwer zu sagen, ob Pakete, die Sie auf PPAs finden, gut sind. Es gibt keine allgemeine Regel. Der beste Hinweis in diesem Fall könnte sein, dass Sie sich den Eigentümer der PPAs ansehen, um sich ein Bild von der möglichen Qualität ihrer Pakete zu machen.
quelle
maintenance-check
kann dir dabei helfen (siehe meine Bearbeitung).Wenn der Server nicht der Welt ausgesetzt ist und Sie Ihren Benutzern absolut vertrauen (im Allgemeinen ist das keine gute Idee), können Sie ihn einfach stehen lassen, wenn er funktioniert.
Wenn es in irgendeiner Weise der Außenwelt ausgesetzt ist und / oder Sie die Idee haben, dass ein legitimer Benutzer auf illegitime Weise damit spielt, benötigen Sie unbedingt Korrekturen und Patches für Ihre installierte Software.
In diesem Fall haben Sie zwei Möglichkeiten:
Führen Sie eine unterstützte Distribution aus und erhalten Sie Updates für Ihre Software oder
Backportieren Sie alle Korrekturen an Ihrer nicht unterstützten Distribution, was offen gesagt nicht machbar erscheint.
Ich bin kein Ubuntu-Benutzer, daher kann ich die Vollständigkeit der Patches, die Sie durch Ihre Option 3 erhalten würden, nicht kommentieren. Wenn Sie jedoch Zweifel haben, würde ich davon ausgehen, dass Sie keine vollständige Abdeckung haben.
Die beste Lösung besteht darin, auf eine LTS-Version von Ubuntu umzusteigen, die Ihnen für einige Zeit Unterstützung für die angegebenen Paketversionen bietet. Mit der Zeit werden einige der Pakete veraltet sein, aber Ihre Umgebung verfügt über Sicherheitspatches und ist stabil (keine Probleme mit der Paketversion). Nach meiner Erfahrung ist die Stabilität einer bekannten Arbeitsumgebung normalerweise wertvoller als neue Funktionen.
Es scheint, dass Ihre aktuelle Position nicht aufrechterhalten werden kann und Sie sich bewegen müssen. Der einzig sichere Weg besteht darin, eine zweite Maschine (oder eine virtuelle Maschine) zu erwerben und Migrationen zu testen, bis Sie eine wiederholbare erfolgreiche Prozedur haben, und diese dann auf die Produktionsmaschine anzuwenden. Wenn Sie Ihre Backups für Testmigrationen verwenden, haben Sie eine gute Gelegenheit, auch Ihre Backup-Verfahren zu testen.
quelle
Der einzige wirkliche Weg nach vorne ist ein Distributions-Upgrade. Ich kann verstehen, dass Sie darüber nervös sind, da Sie jetzt mehrere Veröffentlichungen vor sich haben werden (11.04 wurde gerade veröffentlicht).
Ich würde empfehlen, einen Klon der Laufwerke in diesem Computer zu erstellen und dann einen separaten Computer zu verwenden, um mit den Klonen zu arbeiten, und damit eine Reihe von Test-Upgrades durchzuführen. Machen Sie sich Notizen zu allen aufgetretenen Problemen und wiederholen Sie diese, bis Sie ein klares Verfahren für alle Probleme haben. Wenden Sie dies dann auf Ihren Live-Server an.
Wenn Sie sich keine Ausfallzeiten leisten können, ist die Migration Ihr einziger Ausweg. Vergessen Sie die Pinning und Backports, die Sie nur für einen begrenzten Zeitraum am Leben halten. Und die Option "Roll your own" ist nicht einmal eine Überlegung wert. Nur meine 2 Pennies wert.
quelle