Server auf dem neuesten Stand zu halten, ist eine der Hauptaufgaben eines Systemadministrators. Updates funktionieren jedoch nicht immer so, wie Sie es erwarten, daher ist es ebenso wichtig, dass Sie wissen, wie man a) einen Patch zurücksetzt, um den Server auf den vorherigen Zustand zurückzusetzen, und b) Patches in Teilmengen anwendet, um mehr Flexibilität zu erhalten.
Dieser Artikel konzentriert sich auf das Patchen auf Betriebssystemebene, das mit Hilfe der Paketverwaltungstools YUM/DNF unter Red Hat Enterprise Linux (RHEL) durchgeführt wird. Für diese Demonstration wird ein laufender RHEL 7.7-Server mit yum
auf RHEL 7.9 aktualisiert , und kehrte dann zur Version RHEL 7.7 zurück. Es wird immer empfohlen, regelmäßig Backups Ihrer Server zu erstellen und die Demonstrationen in diesem Artikel dienen nur zu Bildungszwecken.
Überprüfen Sie den Server auf ausstehende Patches/Updates
Sofern Sie kein Systemverwaltungstool wie Red Hat Satellite verwenden, müssen Sie die Server manuell auf Aktualisierungen testen.
Ziehen Sie für diesen Artikel einen RHEL 7.7-Server in Betracht:
[root@rhel77 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)
Verwenden Sie den check-update
Befehl, um nicht interaktiv nach ausstehenden Updates auf Ihrem Server zu suchen:
[root@rhel77 ~]# yum check-update
Loaded plugins: product-id, search-disabled-repos, subscription-manager
NetworkManager.x86_64 1:1.18.4-3.el7 rhel-7-server-rpms
NetworkManager-config-server.noarch 1:1.18.4-3.el7 rhel-7-server-rpms
NetworkManager-libnm.x86_64 1:1.18.4-3.el7 rhel-7-server-rpms
NetworkManager-team.x86_64 1:1.18.4-3.el7 rhel-7-server-rpms
kernel-tools-libs.x86_64 3.10.0-1127.19.1.el7 rhel-7-server-rpms
kexec-tools.x86_64 2.0.15-43.el7 rhel-7-server-rpms
kmod.x86_64 20-28.el7 rhel-7-server-rpms
kmod-libs.x86_64 20-28.el7 rhel-7-server-rpms
kpartx.x86_64 0.4.9-131.el7 rhel-7-server-rpms
krb5-libs.x86_64 1.15.1-46.el7 rhel-7-server-rpms
….
….
….
systemd.x86_64 219-73.el7_8.9 rhel-7-server-rpms
systemd-libs.x86_64 219-73.el7_8.9 rhel-7-server-rpms
systemd-sysv.x86_64 219-73.el7_8.9 rhel-7-server-rpms
tcpdump.x86_64 14:4.9.2-4.el7_7.1 rhel-7-server-rpms
teamd.x86_64 1.29-1.el7 rhel-7-server-rpms
tuned.noarch 2.11.0-8.el7 rhel-7-server-rpms
tzdata.noarch 2020a-1.el7 rhel-7-server-rpms
util-linux.x86_64 2.23.2-63.el7 rhel-7-server-rpms
yum.noarch 3.4.3-167.el7 rhel-7-server-rpms
yum-utils.noarch 1.1.31-54.el7_8 rhel-7-server-rpms
Obsoleting Packages
iwl7260-firmware.noarch 25.30.13.0-76.el7 rhel-7-server-rpms
iwl7265-firmware.noarch 22.0.7.0-72.el7 installed
[Das könnte Ihnen auch gefallen: Red Hat Insights:Vulnerability Management ]
Als dieser Artikel geschrieben wurde, war RHEL 7.9 die neueste Version von RHEL 7 und führte ein yum update
durch würde diesen RHEL 7.7-Server zu RHEL 7.9 bringen:
[root@rhel77 ~]# yum -y update
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.18.0-5.el7 will be updated
---> Package NetworkManager.x86_64 1:1.18.8-1.el7 will be an update
---
Complete!
Überprüfen Sie nach einem erfolgreichen Neustart die RHEL-Version, um zu bestätigen, dass der Server auf 7.9 aktualisiert wurde:
[root@rhel77 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
Zurücksetzen der Aktualisierungen
Überprüfen Sie zuerst den Verlauf der Transaktion mit dem yum
Befehl:
[root@rhel77 ~]# yum history
Loaded plugins: product-id, search-disabled-repos, subscription-manager
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
8 | root <root> | 2020-11-01 23:10 | I, O, U | 157 EE
Die Spalten Aktion(en) und Geändert geben Auskunft darüber, welche Änderungen bei dieser Transaktion aufgetreten sind.
Aktion(en):
- I - Neues Paket installiert
- O - Paket ist veraltet
- U - Paket wurde aktualisiert
Geändert:
- 157 Pakete wurden verändert
- EE - Es gab einige Fehler/Warnungen in der Transaktion
Verwenden von yum history packages-list
zeigt die Änderungen, die aus der Sicht dieses Pakets stattgefunden haben.
Als systemd
ist der erste Prozess, der in RHEL-Versionen 7 und höher gestartet wird, dieses Paket ist mit /etc/yum/protected.d/systemd.conf
geschützt :
[root@rhel77 ~]# cat /etc/yum/protected.d/systemd.conf
systemd
Machen Sie die letzte Transaktion mit yum history undo
rückgängig :
[root@rhel77 ~]# yum history undo last
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Undoing transaction 8, from Sun Nov 1 23:10:56 2020
Updated NetworkManager-1:1.18.0-5.el7.x86_64 @?rhel-7-server-rpms
Update 1:1.18.8-1.el7.x86_64 @rhel-7-server-rpms
Updated NetworkManager-config-server-1:1.18.0-5.el7.noarch @?rhel-7-server-rpms
Update 1:1.18.8-1.el7.noarch @rhel-7-server-rpms
Updated NetworkManager-libnm-1:1.18.0-5.el7.x86_64 @?rhel-7-server-rpms
....
Resolving Dependencies
--> Running transaction check
…
--> Finished Dependency Resolution
Error: Trying to remove "systemd", which is protected
Achtung :Der folgende Prozess wird nicht unterstützt und ist nicht getestet. Beheben Sie alle Probleme, die sich aus dem Downgrade ergeben, indem Sie von einer Sicherung oder Neuinstallation wiederherstellen.
Verschieben Sie das yum
Konfigurationsdatei, die systemd:
schützt
[root@rhel77 ~]# mv /etc/yum/protected.d/systemd.conf /etc/yum/protected.d/systemd.conf.bak
Führen Sie den yum history undo last
erneut aus Befehl:
[root@rhel77 ~]# yum history undo last
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Undoing transaction 8, from Sun Nov 1 23:10:56 2020
....
Skipping the running kernel: kernel-3.10.0-1160.2.2.el7.x86_64
....
Dependencies Resolved
=======================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================
Installing:
iwl7265-firmware noarch 22.0.7.0-72.el7 rhel-7-server-rpms 7.3 M
Removing:
bc x86_64 1.06.95-13.el7 @rhel-7-server-rpms 215 k
iwl7260-firmware noarch 25.30.13.0-79.el7 @rhel-7-server-rpms 87 M
linux-firmware noarch 20200421-79.git78c0348.el7 @rhel-7-server-rpms 394 M
Downgrading:
NetworkManager x86_64 1:1.18.0-5.el7 rhel-7-server-rpms 1.9 M
NetworkManager-config-server noarch 1:1.18.0-5.el7 rhel-7-server-rpms 149 k
NetworkManager-libnm
…
Transaction Summary
=======================================================================================================================
Install 1 Package
Remove 3 Packages
Downgrade 152 Packages
…
Running transaction
Installing : libgcc-4.8.5-39.el7.x86_64 1/308
Installing : 1:grub2-common-2.02-0.80.el7.noarch 2/308
Installing : redhat-release-server-7.7-10.el7.x86_64 3/308
warning: /etc/os-release saved as /etc/os-release.rpmsave
Installing : setup-2.8.71-10.el7.noarch 4/308
warning: /etc/shadow created as /etc/shadow.rpmnew
Installing : 1:grub2-pc-modules-2.02-0.80.el7.noarch
....
yum-utils.noarch 0:1.1.31-52.el7
Complete!
Server neu starten
Überprüfen Sie die Version von RHEL und des Kernels:
[root@rhel77 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)
[root@rhel77 ~]# rpm -q kernel
kernel-3.10.0-1062.el7.x86_64
kernel-3.10.0-1160.2.2.el7.x86_64
[root@rhel77 ~]# uname -r
3.10.0-1160.2.2.el7.x86_64
Der Server verwendet die neueste Kernel-Version von RHEL 7.9. Sie können den Standardkernel mit grub2-set-default
ändern Befehl.
Wenden Sie den Patch in Teilmengen an, um mehr Flexibilität beim Rollback zu erhalten
Durch das Anheften von RHEL an eine bestimmte Version können Sie verhindern, dass das System auf die neueste Nebenversion aktualisiert wird. Subscription Manager kann verwendet werden, um die Version von RHEL festzulegen:
[root@rhel77 ~]# subscription-manager release --list
+-------------------------------------------+
Available Releases
+-------------------------------------------+
7.0
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7Server
Überprüfen Sie die verfügbaren Updates und den Repo-Status, bevor Sie die Version anheften:
[root@rhel77 ~]# yum update
...
Transaction Summary
=======================================================================================================================
Install 2 Packages (+2 Dependent packages)
Upgrade 152 Packages
[root@rhel77 ~]# subscription-manager repos --list-enabled
Repo ID: rhel-7-server-rpms
Repo Name: Red Hat Enterprise Linux 7 Server (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/rhel/server/7/latest/$basearch/os
Enabled: 1
Heften Sie die Version an RHEL 7.8 an, löschen Sie den yum
Cache und überprüfen Sie die aktivierten Repos:
[root@rhel77 ~]# subscription-manager release --set=7.8
[root@rhel77 ~]# yum clean all
[root@rhel77 ~]# subscription-manager repos --list-enabled
Repo ID: rhel-7-server-rpms
Repo Name: Red Hat Enterprise Linux 7 Server (RPMs)
Repo URL: https://cdn.redhat.com/content/dist/rhel/server/7/7.8/$basearch/os
Enabled: 1
Dies ist aus der Repo-URL ersichtlich Ausgabe darüber, dass es jetzt 7.8 verwendet und nicht latest
.
Führen Sie yum update
aus und überprüfen Sie, ob es Änderungen an den verfügbaren Updates gibt:
[root@rhel77 ~]# yum update
....
Transaction Summary
=======================================================================================================================
Install 2 Packages (+1 Dependent package)
Upgrade 136 Packages
Patching in Teilmengen
Die Geschichte Option mit yum
verwendet die Transaktion, um den Vorgang rückgängig zu machen/rückgängig zu machen. Das Aktualisieren der Pakete als Teilmengen bietet also die Flexibilität, sie rückgängig zu machen. Dies ist ein besserer Ansatz, als das System als Ganzes zu aktualisieren.
Aktualisieren Sie das Paket „device-mapper“ mit update device-mapper
.
[root@rhel77 ~]# yum update device-mapper
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Resolving Dependencies
--> Running transaction check
---> Package device-mapper.x86_64 7:1.02.158-2.el7 will be updated
--> Processing Dependency: device-mapper = 7:1.02.158-2.el7 for package: 7:device-mapper-libs-1.02.158-2.el7.x86_64
---> Package device-mapper.x86_64 7:1.02.170-6.el7 will be an update
--> Running transaction check
---> Package device-mapper-libs.x86_64 7:1.02.158-2.el7 will be updated
---> Package device-mapper-libs.x86_64 7:1.02.170-6.el7 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================
Updating:
device-mapper x86_64 7:1.02.170-6.el7 rhel-7-server-rpms 297 k
Updating for dependencies:
device-mapper-libs x86_64 7:1.02.170-6.el7 rhel-7-server-rpms 325 k
Transaction Summary
=======================================================================================================================
Upgrade 1 Package (+1 Dependent package)
Total download size: 621 k
Is this ok [y/d/N]:
Überprüfen Sie den Verlauf mit yum history
.
[root@rhel77 ~]# yum history
Loaded plugins: product-id, search-disabled-repos, subscription-manager
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
2 | root <root> | 2020-11-02 15:25 | Update | 2
1 | System <unset> | 2020-09-14 04:25 | Erase | 1 EE
history list
Erhalten Sie genauere Details zu Transaktions-ID 2 mit yum history info 2
.
[root@rhel77 ~]# yum history info 2
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Transaction ID : 2
Begin time : Mon Nov 2 15:25:12 2020
Begin rpmdb : 345:fc299a705f95203fda639ed1153803ad6771d7fb
End time : 15:25:14 2020 (2 seconds)
End rpmdb : 345:f8faef254573c0653a624c30ee393b08bb365ab2
User : root <root>
Return-Code : Success
Command Line : update device-mapper
Transaction performed with:
Installed rpm-4.11.3-40.el7.x86_64 installed
Installed subscription-manager-1.24.13-1.el7.x86_64 installed
Installed yum-3.4.3-163.el7.noarch installed
Packages Altered:
Updated device-mapper-7:1.02.158-2.el7.x86_64 @?rhel-7-server-rpms
Update 7:1.02.170-6.el7.x86_64 @rhel-7-server-rpms
Updated device-mapper-libs-7:1.02.158-2.el7.x86_64 @?rhel-7-server-rpms
Update 7:1.02.170-6.el7.x86_64 @rhel-7-server-rpms
history info
Machen Sie schließlich die letzte Transaktion mit yum history undo last
rückgängig .
[root@rhel77 ~]# yum history undo last
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Undoing transaction 2, from Mon Nov 2 15:25:12 2020
Updated device-mapper-7:1.02.158-2.el7.x86_64 @?rhel-7-server-rpms
Update 7:1.02.170-6.el7.x86_64 @rhel-7-server-rpms
Updated device-mapper-libs-7:1.02.158-2.el7.x86_64 @?rhel-7-server-rpms
Update 7:1.02.170-6.el7.x86_64 @rhel-7-server-rpms
Resolving Dependencies
--> Running transaction check
---> Package device-mapper.x86_64 7:1.02.158-2.el7 will be a downgrade
---> Package device-mapper.x86_64 7:1.02.170-6.el7 will be erased
---> Package device-mapper-libs.x86_64 7:1.02.158-2.el7 will be a downgrade
---> Package device-mapper-libs.x86_64 7:1.02.170-6.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================
Downgrading:
device-mapper x86_64 7:1.02.158-2.el7 rhel-7-server-rpms 294 k
device-mapper-libs x86_64 7:1.02.158-2.el7 rhel-7-server-rpms 322 k
Transaction Summary
=======================================================================================================================
Downgrade 2 Packages
Total download size: 616 k
Is this ok [y/d/N]:
[ Ein kostenloser Leitfaden von Red Hat:5 Schritte zur Automatisierung Ihres Unternehmens. ]
Es ist nicht das Ende
Proaktiv zu sein ist der beste Weg, um ein Rollback eines fehlgeschlagenen Patches zu vermeiden. Regelmäßige Sicherungen auf Betriebssystem- und Anwendungsebene sind die empfohlene Methode, um die Änderungen sicher rückgängig zu machen. Lesen Sie meinen Artikel „Sysadmin aktivieren“ zur Verwendung von ReaR
für Image-basierte Sicherung und Wiederherstellung.
Weitere Informationen zum Rollback von Updates in Red Hat Enterprise Linux finden Sie im Red Hat Kundenportal.