GNU/Linux >> Belajar Linux >  >> Linux

Bersiap untuk menerapkan pembaruan di Red Hat Linux

Tujuan

Tujuan kami adalah memastikan bahwa pembaruan sistem operasi akan berjalan dengan lancar dan tanpa kesalahan.

Sistem Operasi dan Versi Perangkat Lunak

  • Sistem operasi: Red Hat Enterprise Linux 6+

Persyaratan

Akses istimewa ke sistem

Kesulitan

MUDAH

Konvensi

  • # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
  • $ – perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa

Pengantar

Menjaga sistem tetap up to date adalah tugas setiap hari untuk sysadmin, serta pengguna desktop. Dengan menerapkan perangkat lunak terbaru (stabil) yang tersedia pada sistem, kita dapat memanfaatkan fitur-fitur terbaru, dan akan lebih terlindungi dari masalah keamanan dan mudah-mudahan tidak mengalami bug. Untuk memperbarui sistem, Anda perlu mengkonfigurasi yum repositori yang bertindak sebagai sumber perangkat lunak yang diperbarui.

Jika Anda duduk di sebelah mesin yang menjalankan sistem operasi yang akan diperbarui, Anda dapat dengan mudah bertindak jika terjadi kesalahan selama pembaruan, seperti memeriksa output di terminal, atau boot ke sistem langsung jika yang ditingkatkan tidak kembali dari reboot – tetapi ini tidak selalu terjadi. Bayangkan sebuah pusat data dengan ratusan atau ribuan mesin (virtual), atau sekadar PC fisik yang harus Anda tingkatkan dari jarak jauh.

Ada beberapa langkah sederhana yang dapat kami lakukan untuk mempersiapkan sistem untuk peningkatan versi, dan mungkin menyelesaikan masalah apa pun yang akan membahayakan pembaruan yang berhasil.

Proses pembaruan

Saat melakukan pembaruan tanpa syarat (artinya “perbarui semua”), yum akan mengambil semua metadata dari repositori yang tersedia, dan menghitung semua paket yang akan ditingkatkan versinya terhadap rpm database yang berisi semua metadata tentang paket yang diinstal pada sistem.

Proses pembaruan juga menghitung semua dependensi dari paket yang ditingkatkan, dapat menggantikan paket lama, dan menghapus gambar kernel lama sesuai dengan konfigurasinya. Jumlah imej kernel yang harus disimpan diatur di /etc/yum.conf file konfigurasi, dan secara default adalah 3:

installonly_limit=3


Setelah semua modifikasi yang diperlukan dihitung, yum menyediakan daftar lengkap semua paket yang akan ditingkatkan, dihapus, atau diinstal untuk dependensi, dengan cara yang sama ketika menginstal atau meningkatkan paket tertentu.

Dalam sesi pembaruan interaktif yum akan memberikan ringkasan paket yang akan dimodifikasi, serta perhitungan ukuran data yang perlu didownload untuk upgrade seperti gambar di bawah ini:

Ringkasan pembaruan yum interaktif

Setelah memeriksa hasilnya, kami dapat memutuskan apakah kami akan memulai pembaruan, atau membatalkannya. Karena yum akan memperbarui semua yang dapat ditemukan pembaruannya, kami mungkin ingin menghapus paket yang tidak dibutuhkan sebelumnya. Kami mungkin juga melihat paket yang ditandai untuk pembaruan bahwa kami dikunci versinya sehingga perlu dikecualikan dari peningkatan.

Setelah disetujui, yum akan mengunduh semua paket baru, dan menginstal/memperbaruinya satu per satu. Setelah selesai, ia akan memeriksa integritas paket yang diinstal/diperbarui, membersihkan file yang tidak dibutuhkan. Ini juga memberikan umpan balik selama proses, menyediakan sebaris teks untuk setiap langkah, serta kode keluar yang memberi petunjuk jika pemutakhiran berhasil, atau jika ada masalah yang muncul. Ini juga akan membatalkan proses pembaruan jika masalah muncul yang tampaknya kritis dari perspektif sistem yang konsisten – tetapi ada kalanya sudah terlambat, jadi mencegah masalah pembaruan terjadi adalah pendekatan yang lebih baik.

Ruang disk

tembolok enak

Dari proses yang dijelaskan di atas, kami dapat menebak bahwa kami memerlukan ruang disk untuk proses pembaruan:

  • Metadata dari semua repositori yang dikonfigurasi perlu disimpan hingga penghitungan semua paket (dan dependensinya) yang akan diperbarui selesai.
  • rpm paket yang merupakan pembaruan itu sendiri perlu disimpan secara lokal hingga diinstal dengan benar.

Data ini, disebut yum cache hanya diperlukan selama pembaruan, tetapi dapat menghabiskan banyak ruang disk. Lokasi default untuk cache ini ada di /var/cache/yum direktori. Tak perlu dikatakan bahwa jika tidak ada cukup ruang untuk menyimpan semua data yang dibutuhkan, proses pembaruan akan gagal. Beberapa unduhan yang belum selesai akan dihapus, tetapi tidak semua ruang dapat dibebaskan, yang pada akhirnya menyebabkan sistem gagal memperbarui dan volumenya berisi /var/cache hampir penuh.

Banyak instalasi menyimpan /var direktori pada volume yang didedikasikan untuk logging, karena tempat default untuk file log adalah /var/log di sebagian besar distro, dan sebagian besar aplikasi yang berperilaku baik akan berhenti bekerja atau bahkan mogok jika mereka tidak dapat menulis file log mereka. Jadi mengisi volume tempat mereka menulis adalah hal yang buruk .

Semakin banyak paket yang perlu ditingkatkan, dan semakin banyak repositori yang kami miliki, semakin banyak ruang yang akan ditempati pembaruan sementara. Untuk menghitung ruang ini dari pembaruan ke pembaruan sulit, tetapi dapat diuji dengan solusi dry run yang dijelaskan nanti jika kami memiliki mesin uji dengan konten perangkat lunak yang tepat. Untuk contoh waktu nyata, memperbarui dari RHEL 7.1 ke 7.5 (penginstalan desktop dengan Gnome) mungkin memakan ruang cache 4 GB, tetapi pemasangan beberapa perbaikan ke sistem yang hanya satu atau dua bulan kedaluwarsa hanya akan memakan waktu beberapa MB.

Untuk memeriksa berapa banyak ruang yang kita miliki, kita dapat menggunakan df perintah:

# df -h /var/
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vg_sys-var  6.0G  1.7G  4.4G  28% /var


Dalam contoh di atas, kami memiliki ruang kosong 4,4 GB, yang akan cukup mengingat server baru diperbarui beberapa bulan yang lalu. Untuk mengosongkan ruang, langkah sepele adalah menghapus yum cache sudah tersimpan (mungkin di update terakhir). Untuk memeriksa berapa banyak ruang yang ditempati cache saat ini, kita dapat menggunakan du :

# du -mcd 1 /var/cache/yum
1103    /var/cache/yum/x86_64
1103    /var/cache/yum
1103    total


Angka di atas dalam MB, jadi yum cache dalam contoh ini membutuhkan sekitar 1 GB ruang disk dan menempati sebagian besar ruang di /var volume.

Mengosongkan cache

Kita dapat menghapus seluruh cache dengan perintah berikut:

yum clean all

Tapi sebagai yum memberi tahu kami dalam output perintah di atas pada versi RHEL 7, mungkin ada data yatim piatu dari repositori yang dihapus atau dinonaktifkan, yang kemungkinan besar akan terjadi setelah peningkatan rilis minor, dalam hal ini kami dapat menghapus data dengan aman dengan tangan:

rm -rf /var/cache/yum/*

Kami mungkin mendapatkan lebih banyak ruang untuk pembaruan dengan menghapus data lain yang tersimpan di volume, seperti mengompresi/menghapus file log lama, memindahkan file besar ke volume lain, atau memperluas ukuran volume.

Memindahkan cache

Untuk bekerja dengan kemungkinan yum , jika kita benar-benar kehabisan ruang disk, tidak dapat menghapus apa pun lebih jauh, dan tidak dapat menambahkan lebih banyak ruang ke volume, kita dapat memindahkan lokasi yum cache ke volume lain dengan lebih banyak ruang kosong. Kita dapat mengkonfigurasi lokasi cache di yum.conf file konfigurasi yang disebutkan di atas. Pertimbangkan pengaturan default:

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

Dengan mengubah jalur sebelum $basearch operasi yum berikutnya akan bekerja dengan struktur direktori yang sama, tetapi pada jalur yang berbeda – semoga dengan lebih banyak ruang kosong untuk peningkatan. Kami juga dapat memindahkan cache ke volume lain dengan memindahkan seluruh direktori:

mv /var/cache/yum /extended_data_volume/


Dan membuat symlink di lokasi asli yang menunjuk ke tempat baru:

ln -s /extended_data_volume/yum /var/cache/yum


Adalah bijaksana untuk mengetahui bahwa pembaruan tidak akan gagal pada kesalahan sepele seperti ruang disk yang rendah. Pada sistem yang besar, sysadmin menerapkan alat pemantauan seperti Nagios yang dapat melaporkan ruang disk yang rendah di semua mesin, membuat langkah ini jauh lebih sedikit memakan waktu dan rawan kesalahan.

Kesalahan jaringan

Jika ada masalah dengan konektivitas antara repositori dan mesin yang melakukan pembaruan, pembaruan mungkin gagal. Ini hanya dapat terjadi pada metadata, atau tahap pengunduhan rpm baru, dan tidak akan merusak sistem. Anda dapat memulai proses pembaruan lagi setelah masalah jaringan teratasi.

Di sisi lain, jika pembaruan diinisialisasi dari sesi interaktif, pada pemadaman jaringan koneksi dapat terputus, meninggalkan mesin pemutakhiran tanpa admin untuk menjawab pertanyaan yum mungkin bertanya. Jika tahap pemasangan/pembaruan paket sudah dimulai, itu akan berlanjut tanpa pengawasan, dan mungkin gagal atau selesai jika sebaliknya. Setelah koneksi ulang, proses dapat diikuti di /var/log/yum.log .

Lari kering yang enak

Selain ruang disk yang tidak mencukupi dan masalah jaringan, pembaruan dalam banyak kasus dapat gagal pada dependensi paket yang belum terselesaikan. Ini perlu diselesaikan dengan alat yang dapat menghitung dan menangani dependensi paket, tetapi akan berguna untuk mengetahui akan ada masalah sebelum pembaruan aktual (dan karenanya tidak membuang waktu henti sistem yang selalu terlalu singkat). Untuk mendapatkan informasi berharga ini, kami dapat menjalankan proses pembaruan seperti halnya menjalankan pembaruan yang sebenarnya, tetapi berhenti sebelum pengunduhan, pemasangan, atau pembaruan paket yang sebenarnya terjadi.

Di sekitar Redhat 6.6, opsi baru diperkenalkan yang akan menyebabkan yum untuk mengasumsikan "Tidak" untuk setiap pertanyaan yang muncul selama pembaruan – termasuk persetujuan sebelum tahap manipulasi paket yang sebenarnya, dan sebagai konsekuensinya, tidak ada interaksi aktual yang diperlukan, jalankan dry run:

yum update --assumeno

Ini bisa menjadi alat yang ideal untuk menyediakan pembaruan yang akan datang, termasuk paket yang akan ditingkatkan, dan kesalahan apa pun yang mungkin terjadi. Perhatikan bash sederhana berikut ini naskah:

#!/bin/bash
yum update --assumeno &> $(hostname).yum.dryrun.$(date '+%Y-%m-%d').out
exit $?


Skrip di atas dapat dijalankan secara otomatis dan akan memberikan laporan teks dari proses kering, serta kode keluar keseluruhan yang menunjukkan masalah apa pun. Output tidak perlu disimpan di sistem file lokal. Target pengalihan output dapat berupa sistem file jaringan, atau laporan dapat dikirim ke beberapa server pelaporan pusat, dapat dikumpulkan oleh skrip atau aplikasi lain. Laporan dapat dipublikasikan dan didistribusikan di antara departemen TI lainnya untuk disetujui, dengan cara ini semua orang yang terlibat dapat melihat dengan tepat paket apa yang akan diperbarui, dan ke versi apa.

Dry run dapat dijadwalkan untuk berjalan pada kerangka waktu tertentu (mungkin pada malam hari untuk mengurangi kinerja sistem) dengan cron , atau dieksekusi dari sumber pusat dengan pengaturan boneka. Kode keluar juga dapat disimpan dan diproses dengan memantau atau facter , untuk menggabungkan kemungkinan hasil dari peningkatan versi yang akan datang sebelum melanjutkan.

Kesimpulan

Bahkan dengan satu atau beberapa komputer, kita harus mengumpulkan informasi sebelum memulai pembaruan seluruh sistem operasi, hanya untuk berjaga-jaga. Suatu hari akan ada masalah, dan itu jauh lebih sedikit stres jika Anda dapat menyelesaikannya sebelum berdampak pada pekerjaan sebenarnya dari mesin tertentu. Dalam skala yang lebih besar, tidak mungkin untuk duduk di sebelah setiap server atau desktop dan mendukungnya dengan kehadiran Anda dengan harapan bahwa ini akan membantu pembaruan berjalan dengan sempurna.

Dengan mengetahui tahapan proses pembaruan, jebakan, serta solusinya sangat penting untuk pembaruan yang berhasil. Memulai tahap pembaruan seluruh infrastruktur Anda dengan keyakinan bahwa tidak akan ada masalah adalah melakukannya dengan penuh gaya.


Linux
  1. Apa Itu Linux? Panduan untuk Pengguna Non-teknis

  2. Membangun image Red Hat Enterprise Linux 7 yang disesuaikan untuk Microsoft Azure

  3. Cara mencerminkan repositori di Linux

  1. Bagaimana mempersiapkan ujian sertifikasi administrator sistem Linux

  2. 3 Perintah Linux yang Berguna untuk Administrator Sistem

  3. Bagaimana Mendapatkan Red Hat Enterprise Linux Secara Gratis?

  1. Bagaimana menangani kepanikan kernel Linux

  2. Cara Mengecualikan Repositori Khusus untuk Pembaruan Yum di CentOS / Red Hat

  3. Cara me-mount partisi baru di Red hat linux