Vorbereitung auf die Anwendung von Updates auf Red Hat Linux

Vorbereitung auf die Anwendung von Updates auf Red Hat Linux

Zielsetzung

Unser Ziel ist es sicherzustellen, dass die Aktualisierung des Betriebssystems reibungslos und ohne Fehler ausgeführt wird.

Betriebssystem- und Softwareversionen

  • Betriebssystem: Red Hat Enterprise Linux 6+

Anforderungen

Privilegierter Zugang zu den Systemen

Schwierigkeit

EINFACH

Konventionen

  • # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
  • $ - Angegebene Linux-Befehle, die als regelmäßiger nicht privilegierter Benutzer ausgeführt werden sollen

Einführung

Das System auf dem neuesten Stand zu halten ist eine tägliche Aufgabe für ein Sysadmin und einen Desktop -Benutzer. Durch die Anwendung der neuesten (stabilen) verfügbaren Software auf das System können wir die neuesten Funktionen nutzen und werden vor Sicherheitsproblemen mehr geschützt und hoffentlich weniger an Fehler leiden. Um das System zu aktualisieren, benötigen Sie konfiguriert Yum Repositorys, die als Quelle der aktualisierten Software fungieren.

Wenn Sie neben dem Computer, der das zu aktualisierende Betriebssystem ausführt, sitzen, können Sie einfach handeln, wenn beim Update etwas schief geht, z. Neustart - aber das ist nicht immer der Fall. Denken Sie an ein Rechenzentrum mit Hunderten oder Tausenden von (virtuellen) Maschinen oder einfach einem physischen PC, den Sie remote aktualisieren müssen.

Es gibt einfache Schritte, die wir ausführen können, um das System für das Upgrade vorzubereiten, und möglicherweise jedes Problem löschen, das ein erfolgreiches Update gefährden würde.



Aktualisierungsprozess

Bei der Durchführung eines bedingungslosen Updates (was "alle aktualisieren"), Yum holt alle Metadaten aus den verfügbaren Repositories ab und berechnet alle Pakete, die auf die aktualisiert werden sollen Drehzahl Datenbank, die alle Metadaten über Pakete enthält, die auf dem System installiert sind.

Der Aktualisierungsprozess berechnet auch alle Abhängigkeiten der aktualisierten Pakete, kann alte Pakete ersetzen und alte Kernelbilder gemäß seiner Konfiguration entfernen. Die Anzahl der zum Aufbewahren von Kernel -Bildern ist in der festgelegt /etc/yum.Conf Konfigurationsdatei und standardmäßig 3:

installOnly_limit = 3


Nach all den erforderlichen Änderungen berechnet, Yum Bietet eine umfangreiche Liste aller Pakete, die für Abhängigkeiten aktualisiert, entfernt oder installiert werden sollen, genauso wie bei der Installation oder Aktualisierung bestimmter Pakete.

In einer interaktiven Update -Sitzung Yum Bereitet eine Zusammenfassung der zu modifizierenden Pakete sowie die Berechnung der Datengröße für das Upgrade wie unten gezeigt heruntergeladen werden:

Zusammenfassung des interaktiven Yum -Update

Nachdem wir die Ergebnisse untersucht haben, können wir entscheiden, ob wir das Update starten oder es absagen. Da yum alles aktualisiert, um Updates zu finden, möchten wir möglicherweise vorher nicht benötigte Pakete entfernen. Möglicherweise bemerken wir auch ein Paket, das für das Update gekennzeichnet ist, dass wir Versionen gesperrt sind, die vom Upgrade ausgeschlossen werden müssen.

Nach der Genehmigung lädt Yum alle neuen Pakete herunter und installieren/aktualisieren Sie sie nacheinander. Bei der Fertigstellung werden die Integrität der installierten/aktualisierten Pakete überprüft und nicht benötigte Dateien aufräumen. Es bietet auch Feedback während des Prozesses, bietet eine Textlinie für jeden Schritt sowie einen Exit -Code, der darauf hinweist, ob das Upgrade erfolgreich war oder ob ein Problem auftritt. Es wird auch den Aktualisierungsprozess stornieren, wenn ein Problem steigt, das aus der konsistenten Systemperspektive von entscheidender Bedeutung erscheint. Es gibt jedoch Zeiten, in denen es bereits zu spät ist. Die Verhinderung des Auftretens von Aktualisierungsproblemen ist daher ein besserer Ansatz.

Festplattenplatz

yum Cache

Aus dem oben beschriebenen Prozess konnten wir vermuten, dass wir einen Speicherplatz für den Aktualisierungsprozess benötigen:

  • Die Metadaten aller konfigurierten Repositorys müssen bis zur Berechnung aller Pakete (und ihrer Abhängigkeiten) gespeichert werden, um aktualisiert zu werden.
  • Drehzahl Pakete, die das Update selbst ausmachen.

Diese Daten, genannt yum Cache wird nur während des Updates benötigt, kann aber einen erheblichen Speicherplatz einnehmen. Der Standardpunkt für diesen Cache liegt in der /var/cache/yum Verzeichnis. Unnötig zu erwähnen, dass der Aktualisierungsvorgang fehlschlägt. Einige unvollendete Downloads werden fallen gelassen, aber nicht der gesamte Speicherplatz kann befreit werden, was ein System fehlgeschlagen ist und das Volumen enthält /var/cache fast voll.

Viele Installationen speichern ihre /var Verzeichnis auf einem Volumen, das sich der Protokollierung als Standardplatz für LogFiles gewidmet hat /var/log Bei den meisten Distributionen und den meisten gut verbotenen Anwendungen werden nicht mehr arbeiten oder sogar abstürzen, wenn sie ihre Protokolldateien nicht schreiben können. Das Volumen zu füllen, zu dem sie schreiben, ist also a schlechte Sache.

Je mehr Pakete aktualisiert werden müssen, und je mehr Repositorys wir haben, desto mehr Platz wird das Update vorübergehend einnehmen. Es ist schwierig, diesen Speicherplatz von Update zu Aktualisierung zu berechnen, kann jedoch mit der später beschriebenen Trockenläuflösung getestet werden, wenn wir über einen Testgerät mit dem genauen Softwareinhalt verfügen. Für ein Echtzeitbeispiel von RHEL 7 Aktualisierung.1 bis 7.5 (Desktop -Installation mit GNOME) kann 4 GB Cache -Speicherplatz in Anspruch nehmen, aber die Installation einiger Korrekturen in einem System, das nur ein oder zwei Monate veraltet ist.

Um zu überprüfen, wie viel Platz wir haben, können wir die nutzen df Befehl:

# df -h/var/fileSystemgröße verwendet werden Ulu.0g 1.7g 4.4g 28% /var 
Kopieren


Im obigen Beispiel haben wir 4.4 GB freier Speicherplatz, der ausreicht, da der Server erst vor wenigen Monaten aktualisiert wurde. Um den Raum freizugeben, wäre ein trivialer Schritt, die zu löschen yum Cache Bereits gespeichert (vielleicht beim letzten Update). Um zu überprüfen, wie viel Platz ein Cache im Moment einnimmt, können wir nutzen Du:

# du -mcd 1/var/cache/yum 1103/var/cache/yum/x86_64 1103/var/cache/yum 1103 Gesamt 
Kopieren


Die obigen Zahlen sind in MB, also die yum Cache In diesem Beispiel nimmt ungefähr 1 GB Speicherplatz ein und nimmt den größten Teil des Raums auf dem /var Volumen.



Löschen des Cache

Wir können den gesamten Cache mit dem folgenden Befehl löschen:

yum alles reinigen

Aber Yum Benachrichtigt uns in der Ausgabe des obigen Befehls in RHEL 7 -Versionen. Es kann verwaiste Daten von entfernten oder deaktivierten Repositories vorliegen, was höchstwahrscheinlich nach geringfügigen Freisetzung Ugrades auftreten wird. In diesem Fall können wir die Daten sicher von Hand löschen:

rm -rf/var/cache/yum/*

Wir können mehr Platz für das Update erhalten, indem wir andere auf dem Volumen gespeicherte Daten löschen, z. B. das Komprimieren/Löschen alter Protokolldateien, das Verschieben großer Dateien auf andere Volumina oder die Verlängerung der Lautstärkegröße.

Verschieben des Cache

Mit den Möglichkeiten von arbeiten Yum, Wenn wir den Speicherplatz sehr gering haben, nichts weiter löschen und dem Volumen nicht mehr Platz hinzufügen können, können wir den Ort des yum Cache zu einem anderen Volumen mit mehr freiem Speicherplatz. Wir können den Cache -Speicherort in der konfigurieren Yum.Conf Die oben erwähnte Konfigurationsdatei. Betrachten Sie die Standardeinstellung:

CacheDir =/var/cache/yum/$ basearch/$ releasever

Durch Ändern des Weges vor $ basearch Die nächste YUM -Operation funktioniert mit derselben Verzeichnisstruktur, jedoch auf einem anderen Weg - hoffentlich mit mehr freiem Speicherplatz für das Upgrade. Wir können den Cache auch auf ein anderes Volumen verschieben, indem wir das gesamte Verzeichnis verschieben:

mv/var/cache/yum/extended_data_volume/


Und Erstellen eines Symlinks an dem ursprünglichen Ort, der auf den neuen Ort hinweist:

ln -S/extended_data_volume/yum/var/cache/yum


Es ist ratsam zu wissen, dass das Update bei einem trivialen Fehler wie niedriger Speicherplatz nicht scheitert. Auf einem großen System sysadmins stellen Überwachungstools wie Nagios bereit, die auf allen Maschinen einen niedrigen Speicherplatz melden können.

Netzwerkfehler

Wenn es Probleme mit der Konnektivität zwischen den Repositorys und der Maschine gibt, die das Update durchführt, kann das Update fehlschlagen. Dies kann nur in der Metadaten oder in der neuen RPMS -Download -Phase passieren und wird das System nicht brechen. Sie können den Aktualisierungsprozess erneut starten, wenn das Netzwerkproblem gelöst ist.

Wenn das Update hingegen von einer interaktiven Sitzung initialisiert wird, kann die Verbindung in Netzwerkausfällen unterbrechen, sodass der Aktualisierungsgerät ohne Administrator die Fragen beantwortet wird Yum darf fragen. Wenn die Paketinstallations-/Update -Stufe bereits gestartet wird, wird es unbeaufsichtigt fortgesetzt und kann ausfallen oder abgeschlossen werden, wenn dies sonst der Fall wäre. Nach der Wiederverbindung kann der Prozess in der befolgt werden /var/log/yum.Protokoll.



Yum Dry Run

Abgesehen von unzureichenden Speicherplatz- und Netzwerkproblemen kann das Update in vielen Fällen bei ungelösten Paketabhängigkeiten fehlschlagen. Diese müssen mit Tools gelöst werden, die Paketabhängigkeiten berechnen und verarbeiten können. Es wäre jedoch nützlich zu wissen, dass es vor dem tatsächlichen Update Probleme geben wird (und daher die immer zu kurzen Ausfallzeiten des Systems nicht verschwenden). Um diese wertvollen Informationen zu erhalten.

Um Redhat 6.6 Es wurde eine neue Option eingeführt, die verursachen wird Yum Um "Nein" für jede Frage zu übernehmen, die während des Updates auftaucht - einschließlich der Genehmigung vor der tatsächlichen Paketmanipulationsphase, und infolgedessen ist keine tatsächliche Interaktion erforderlich. Führen Sie einen Trockenlauf aus:

Yum Update -Assumeno

Dies kann das ideale Instrument sein, um einen Trockenlauf des kommenden Updates bereitzustellen, einschließlich der zu aktualisierten Pakete, und alle Fehler, was auftreten kann. Betrachten Sie das folgende einfache verprügeln Skript:

#!/Bin/Bash Yum Update -Assumeno &> $ (Hostname).Yum.Probelauf.$ (Datum '+%y-%M-%d').Aus dem Ausgang $? 
Kopieren


Das obige Skript kann automatisch ausgeführt werden und liefert einen Textbericht über den Trockenlauf sowie einen Gesamtausgangscode, der Probleme angibt. Die Ausgabe muss nicht auf dem lokalen Dateisystem gespeichert werden. Das Ziel der Ausgabeumleitung kann ein Netzwerkdateisystem sein, oder der Bericht kann auf einen zentralen Berichtsserver veröffentlicht werden, kann von anderen Skripten oder Anwendungen gesammelt werden. Die Berichte können unter anderen IT -Abteilungen zur Genehmigung veröffentlicht und verteilt werden. Auf diese Weise können alle Beteiligten genau sehen, welche Pakete aktualisiert werden und welche Version.

Der Trockenlauf kann für einen bestimmten Zeitraum ausgeführt werden (möglicherweise nachts, um die Leistung des Systems weniger zu beeinflussen) mit Cron, oder aus einer zentralen Quelle mit einem Puppenaufbau ausgeführt. Der Exit -Code kann auch durch Überwachung oder verarbeitet werden oder verarbeitet werden FASTER, Um die möglichen Ergebnisse des bevorstehenden Upgrades vor dem Fortfahren zu aggregieren.

Abschluss

Selbst mit einem oder wenigen Computern sollten wir Informationen sammeln, bevor wir ein Update des gesamten Betriebssystems beginnen, um auf der sicheren Seite zu sein. Eines Tages wird es ein Problem geben, und es ist viel weniger belastend, wenn Sie es lösen können, bevor es sich auf die tatsächliche Aufgabe einer bestimmten Maschine auswirkt. In größerem Maßstab ist es einfach nicht möglich, neben jedem Server oder Desktop zu sitzen und es mit Ihrer Anwesenheit zu unterstützen, in der Hoffnung, dass dies dem Update hilft, einwandfrei zu laufen.

Durch die Kenntnis der Phasen des Update -Prozesses sind die Fallstricke sowie die Lösung für sie für erfolgreiche Updates von wesentlicher Bedeutung. Starten Sie die nächste Update -Phase Ihrer gesamten Infrastruktur mit dem Vertrauen, dass es keine Probleme geben wird, dies mit Stil zu tun.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten
  • Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Linux -Download
  • So aktualisieren Sie Firefox unter Linux
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
  • Beste Linux -Distribution für Entwickler
  • Mint 20: Besser als Ubuntu und Microsoft Windows?