Catatan editor:Artikel ini ditulis saat James Brigman menjadi anggota program Akselerator Red Hat.
Red Hat Satellite menyediakan sarana untuk memperbarui sistem Red Hat Linux dengan RPM baru atau yang diperbarui. Satelit menghosting repositori secara lokal sehingga kami bisa mendapatkan pembaruan tersebut lebih cepat dan untuk jumlah klien yang lebih banyak. Fitur ini menjadi penting untuk proses pengembangan perangkat lunak kami, karena kami perlu dengan cepat membuat dan menghancurkan mesin virtual dalam melayani proses pengembangan.
Server Satelit kami sering digunakan selama siklus pengembangan, jadi kami harus tahu bahwa itu berfungsi dengan benar. Jika ada masalah, kami perlu menemukan dan menyelesaikannya dengan cepat sehingga pengembang dapat melanjutkan pekerjaan mereka tanpa gangguan.
Artikel ini menjelaskan poin-poin penting dari proses tersebut dan mencakup pelajaran yang didapat dari memperbarui dan meningkatkan server Red Hat Satellite saya.
Peringatan penting
Jika Anda menjalankan Satelit sebagai mesin virtual (dalam sistem VM apa pun yang Anda gunakan), buat cadangan atau snapshot. Jika Anda menjalankan Satellite di Red Hat Enterprise Linux yang menjalankan bare metal, ambil cadangan penuh. Anda ingin dapat kembali ke keadaan semula jika mengalami masalah.
[Ingin mencoba Red Hat Enterprise Linux? Unduh sekarang secara gratis.]
Memperbarui vs. meningkatkan
Waktu terus berjalan. Fakta ini berarti bahwa bagi kita yang berprofesi administrasi sistem, mengupgrade perangkat lunak adalah aktivitas yang konstan. Kami meningkatkan versi karena berbagai alasan, baik untuk mendapatkan dukungan untuk produk yang kami jalankan, mendapatkan (dan mempertahankan) fungsionalitas yang diperlukan, atau meningkatkan kinerja.
Untuk Satelit, istilah memperbarui dan meningkatkan versi memiliki arti yang sangat spesifik. Memperbarui adalah saat Anda membuat pembaruan titik terhadap perangkat lunak yang ada. Untuk diskusi ini, memperbarui membawa kami dari Red Hat Satellite 6.4.2 ke 6.4.4. Keduanya masih Satellite 6.4 (versi mayor), tetapi yang kedua berubah dari .2 menjadi .4 (versi minor).
Meningkatkan versi adalah ketika Anda mengambil server satelit dari versi utama sebelumnya ke versi utama yang lebih baru. Setelah update, saya kemudian bekerja untuk mengupgrade server dari versi mayor 6.4 ke versi mayor 6.5.
Pada akhir proses, server satelit kami diambil dari 6.4.2 menjadi 6.5.2.1.
Upgrade dan update
Proses untuk meningkatkan atau memperbarui melibatkan empat langkah utama. Mari kita lihat masing-masing.
Satelit yang rapi
Sebelum memperbarui atau meningkatkan, Anda memiliki utilitas yang dapat memeriksa status satelit Anda saat ini dan memberi tahu Anda tentang seberapa siap Anda untuk melakukan pembaruan atau peningkatan. Utilitas itu adalah foreman-maintain
dan dijelaskan dalam dokumentasi Satelit.
Anda dapat mencari access.redhat.com dengan istilah "upgrade satellite 6.5" untuk menemukan tautan ini. Di bawah Filter Jenis Konten , pilih Dokumentasi untuk membatasi pencarian Anda. Anda akan menemukan definisi penting, prasyarat, dan jalur peningkatan di URL ini.
Langkah-langkah yang tercantum dalam dokumen ini berujung pada menjalankan foreman-maintain
perintah dalam mode peningkatan. Perintah ini melewati server Satelit Anda, memeriksa kesesuaiannya untuk diperbarui sebelum Anda melakukan pembaruan yang sebenarnya. Perintah yang saya gunakan untuk update dan meningkatkan versi adalah sama, dengan versi target yang berbeda:
# /usr/bin/foreman-maintain upgrade check --target-version 6.4.z
Tentu saja, sintaks yang benar untuk Satelit Anda akan bervariasi.
Ditugaskan oleh tugas
Pemeriksaan peningkatan saya gagal beberapa kali. Alasan yang paling penting adalah bahwa untuk versi yang saya gunakan, saya memiliki tugas yang tersisa sejak lama yang tidak selesai dalam keadaan yang dibutuhkan. Saya dapat menyelesaikan tugas-tugas tersebut menggunakan foreman-rake
perintah:
# /usr/bin/foreman-rake foreman_tasks:cleanup TASK_SEARCH='label = Actions::Katello::Repository::MetadataGenerate' STATES='running,pending,stopped' VERBOSE=true
Seperti foreman-maintain
perintah di atas, foreman-rake
perintah mungkin berbeda tergantung pada keluaran pemeriksaan pemutakhiran Anda.
Titik tidak bisa kembali
Akhirnya, saya mencapai titik di mana saya siap untuk melakukan upgrade itu sendiri. Dalam langkah yang bijaksana, Anda akan menggunakan perintah yang sama untuk melakukan upgrade yang sebenarnya, tetapi dengan satu perubahan. Kata check
menjadi run
:
# /usr/bin/foreman-maintain upgrade run --target-version 6.4.z
Upgrade saya berhasil. Hasil ini sebagian besar disebabkan oleh pengujian dan pemeriksaan pra-peningkatan yang tersedia untuk administrator sistem. Langkah ini merupakan pertimbangan penting untuk sistem mission-critical seperti Satelit.
Pemeriksaan pasca-upgrade
upgrade
perintah itu sendiri memberi Anda hasil yang berguna. Output ini ditemukan di log yang dihasilkan oleh foreman-maintain
:
=============================================
Upgrade Step 3/10: katello:clean_backend_objects. This may take a long while.
0 orphaned consumer id(s) found in candlepin.
Candlepin orphaned consumers: []
0 orphaned consumer id(s) found in pulp.
.....
=============================================
Upgrade Step 10/10: katello:upgrades:3.11:clear_checksum_type.
foreman-rake upgrade:run finished successfully!
Upgrade completed!
Log itu penting dan berguna, tetapi ada pemeriksaan lain yang dapat Anda lakukan untuk memverifikasi kesehatan server Satelit Anda, seperti:
# /usr/bin/foreman-maintain health check
Output dari perintah ini terlihat seperti (diedit agar sesuai):
Running ForemanMaintain::Scenario::FilteredScenario
Check for verifying syntax for ISP DHCP configurations: [SKIPPED]
DHCP feature is not enabled
----------------------------------------------------------------
Check whether all services are running: [OK]
----------------------------------------------------------------
Check whether all services are running using hammer ping: [OK]
----------------------------------------------------------------
Check for paused tasks: [OK]
----------------------------------------------------------------
Pemeriksaan kesehatan pasca-peningkatan lainnya
Berikut adalah tiga pemeriksaan tambahan untuk memverifikasi kesehatan pasca-pemutakhiran server Satelit Anda. Pemeriksaan pertama untuk melihat apakah API Satelit tersedia dan merespons:
# /usr/bin/hammer ping
candlepin:
Status: ok
Server Response: Duration: 19ms
candlepin_auth:
Status: ok
Server Response: Duration: 21ms
pulp:
Status: ok
Server Response: Duration: 72ms
pulp_auth:
Status: ok
Server Response: Duration: 36ms
foreman_tasks:
Status: ok
Server Response: Duration: 5ms
Yang kedua memeriksa status layanan dengan foreman-maintain
perintah, yang memeriksa layanan utama menggunakan systemctl
perintah:
# /usr/bin/foreman-maintain service status
Outputnya terlalu bertele-tele untuk disertakan di sini, tetapi Anda akan mengenalinya dari menggunakan systemctl
.
Perintah ketiga memeriksa apakah Anda dapat menyinkronkan repositori:
Content --> Product --> Repository --> <choose repo to sync>
Kesimpulan
Memutakhirkan server Red Hat Satellite cukup menantang jika ini merupakan komponen penting dalam bisnis Anda. Manfaatkan semua peluang yang Anda bisa untuk memverifikasi bahwa server dalam kondisi untuk memperbarui, dan memiliki cadangan sehingga Anda dapat memutar kembali jika perlu. Dalam kasus saya, saya bahkan membuka kasus dengan dukungan untuk mendiskusikan hasil pemeriksaan sebelum dan sesudah dan mendapat bantuan besar.
Upgrade saya ternyata membantu. Beban pada server Satelit saya sedikit berkurang, kinerjanya sedikit meningkat dan banyak tugas lama yang macet telah diselesaikan. Mungkin manfaat yang paling penting adalah mendapatkan peningkatan keakraban dengan Satelit dan perintah penting yang diperlukan untuk menyelesaikan tugas.