GNU/Linux >> Belajar Linux >  >> Linux

Manajemen tambalan Linux:Cara mencadangkan tambalan yang gagal

Menjaga server tetap up to date adalah salah satu tanggung jawab utama administrator sistem. Namun, pembaruan tidak selalu berfungsi seperti yang Anda harapkan, jadi sama pentingnya bagi Anda untuk mengetahui cara a) mengembalikan tambalan untuk mengembalikan server ke keadaan sebelumnya dan b) menerapkan tambalan dalam himpunan bagian untuk mendapatkan lebih banyak fleksibilitas.

Artikel ini berfokus pada patching level sistem operasi yang dilakukan dengan bantuan alat manajemen paket YUM/DNF di Red Hat Enterprise Linux (RHEL). Untuk demonstrasi ini, server RHEL 7.7 yang sedang berjalan diperbarui ke RHEL 7.9 menggunakan yum , dan kemudian dikembalikan ke versi RHEL 7.7. Selalu disarankan untuk melakukan pencadangan berkala pada server Anda dan demonstrasi yang diberikan dalam artikel ini hanya untuk tujuan pendidikan.

Periksa server untuk patch/pembaruan yang tertunda

Kecuali Anda menggunakan alat manajemen sistem seperti Red Hat Satellite, Anda perlu menguji server untuk pembaruan apa pun secara manual.

Untuk artikel ini, pertimbangkan server RHEL 7.7:

[root@rhel77 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)

Gunakan check-update perintah untuk secara non-interaktif memeriksa pembaruan luar biasa di server Anda:

[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     

[ Anda mungkin juga menyukai: Red Hat Insights:Manajemen kerentanan ]

Saat artikel ini ditulis, RHEL 7.9 adalah versi terbaru dari RHEL 7 dan melakukan yum update akan membawa server RHEL 7.7 ini ke RHEL 7.9:

[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!

Setelah reboot berhasil, periksa versi RHEL untuk mengonfirmasi bahwa server telah diperbarui ke 7.9:

[root@rhel77 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)

Mengembalikan pembaruan

Pertama, periksa riwayat transaksi dengan yum perintah:

[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

Kolom Tindakan dan Diubah memberikan informasi tentang perubahan apa yang terjadi dengan transaksi ini.

Tindakan:

  • I - Paket baru Terpasang
  • O - Paket Kedaluwarsa
  • U - Paket Diperbarui

Diubah:

  • 157 paket diubah
  • EE - Ada beberapa kesalahan/peringatan dalam transaksi

Menggunakan yum history packages-list menunjukkan perubahan yang terjadi dari sudut pandang paket tersebut.

Sebagai systemd adalah proses pertama yang dimulai pada RHEL versi 7 ke atas, paket tersebut diproteksi dengan /etc/yum/protected.d/systemd.conf :

[root@rhel77 ~]# cat /etc/yum/protected.d/systemd.conf
systemd

Kembalikan transaksi terakhir dengan yum history undo :

[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

Perhatian :Proses berikut tidak didukung dan belum diuji. Selesaikan masalah apa pun yang muncul dari penurunan versi dengan memulihkan dari pencadangan atau penginstalan ulang.

Pindahkan yum file konfigurasi, yang melindungi systemd:

[root@rhel77 ~]# mv /etc/yum/protected.d/systemd.conf /etc/yum/protected.d/systemd.conf.bak

Jalankan kembali yum history undo last perintah:

[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!

Reboot server

Periksa versi RHEL dan kernelnya:

[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

Server menggunakan versi kernel terbaru dari RHEL 7.9. Anda dapat mengubah kernel default menggunakan grub2-set-default perintah.

Terapkan tambalan dalam himpunan bagian untuk mendapatkan lebih banyak fleksibilitas rollback

Menyematkan RHEL ke versi tertentu adalah salah satu cara Anda dapat mencegah sistem diperbarui ke versi minor terbaru. Pengelola Langganan dapat digunakan untuk menyetel versi RHEL:

[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

Periksa pembaruan yang tersedia dan status repo sebelum menyematkan versi:

[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

Sematkan versi ke RHEL 7.8, hapus yum cache, dan periksa repo yang diaktifkan:

[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

Terbukti dari URL Repo output di atas yang sekarang menggunakan 7.8 dan tidak latest .

Jalankan yum update dan periksa apakah ada perubahan pada pembaruan yang tersedia:

[root@rhel77 ~]# yum update
....
Transaction Summary
=======================================================================================================================
Install    2 Packages (+1 Dependent package)
Upgrade  136 Packages

Menambal dalam himpunan bagian

Sejarah opsi dengan yum menggunakan transaksi untuk mengembalikan/membatalkan operasi. Jadi, memperbarui paket sebagai himpunan bagian memberikan fleksibilitas untuk memutarnya kembali. Ini adalah pendekatan yang lebih baik daripada memperbarui sistem secara keseluruhan.

Perbarui paket 'device-mapper' dengan 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]:

Periksa riwayat dengan 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

Dapatkan detail lebih spesifik tentang ID transaksi 2 menggunakan 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

Terakhir, batalkan transaksi terakhir menggunakan yum history undo last .

[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]:

[ Panduan gratis dari Red Hat:5 langkah untuk mengotomatisasi bisnis Anda. ] 

Ini bukan akhir

Menjadi proaktif adalah cara terbaik untuk menghindari mengembalikan patch yang gagal. Mengambil tingkat sistem operasi dan pencadangan tingkat aplikasi secara berkala adalah cara yang disarankan untuk mengembalikan perubahan dengan percaya diri. Baca artikel Aktifkan Sysadmin saya tentang cara menggunakan ReaR untuk pencadangan dan pemulihan berbasis gambar.

Untuk informasi lebih lanjut tentang mengembalikan pembaruan di Red Hat Enterprise Linux, pastikan untuk memeriksa Portal Pelanggan Red Hat.


Linux
  1. Cara Mengetahui Daftar Semua Port Terbuka di Linux

  2. Cara memeriksa upaya login yang gagal atau buruk di Linux

  3. Bagaimana cara mengkonfigurasi swappiness di Manajemen Memori Linux?

  1. Versi Linux Apa yang Saya Jalankan? Inilah Cara Mengetahuinya

  2. Cara memperbesar dan memperkecil konsol terminal di linux

  3. Bagaimana cara mengetahui versi Linux yang saya jalankan?

  1. Bagaimana cara mengetahui apa yang dilakukan perintah Linux

  2. Bagaimana cara menentukan versi Intel Management Engine di Linux?

  3. Bagaimana cara mengetahui jenis virtualisasi VPS linux?