CentOS 8-to-Oracle 8 Migration nasıl yapılır?

Merhabalar,

8 Aralık’ta CentOS blogu aracılığıyla Red Hat, CentOS Linux 8’in, temel aldığı upstream dağıtımından, sekiz yıl önce olan Aralık 2021’de kullanım ömrünün sonuna ulaşacağını duyurdu. Ocak 2022’den itibaren, CentOS projesi tarafından sağlanan tek sürüm, Fedora’dan sonra Red Hat Enterprise Linux’un (RHEL) upstream’ine yerleştirilen CentOS Stream olacak. Bu da, CentOS’un artık RHEL’in yerini almayacağı anlamına geliyor.

Bu nedenle, CentOS Linux 7 mevcut yaşam döngüsünü takip edecek ve korunacak olsa da, şu anda CentOS Linux 8’i bir drop-in RHEL ikamesi olarak kullanan herhangi biri, CentOS Stream’e geçip geçmeyeceğine karar vermesi gerekecek (ve böylece RHEL ile 1:1 uyumluluğunu kaybedecek. Geliştirme ve test ortamları için etkileri vardır) veya ücretli destek abonelikleri gerektiren RHEL’e geçiş yapması gerekecek.

Red Hat, CentOS’un geleceği ile ilgili duyurusu üzerine büyük bir kullanıcı tepkisi yarattı elbette. Bu aşamada, çok daha basit bir üçüncü seçenek olduğunu görüyoruz. Bunun yerine Oracle Linux’a geçilmesi.

  • Oracle Linux, 14 yıl önce piyasaya sürüldüğünden beri, indirilmesi, dağıtılması ve kullanması (üretimde bile) ücretsizdir.
  •  Kurulum medyası, güncellemeler ve kaynak kodunun tümü, Oracle Linux yum sunucusunda oturum açma veya kimlik doğrulama gereksinimi olmaksızın herkese açık olarak mevcuttur.
  • 2006’daki ilk sürümünden bu yana Oracle Linux, eşdeğer RHEL sürümüyle %100 uygulama binary uyumludur. Dolayısıyla, hiçbir uyumluluk hatası beklenmemekte.

Bu nedenlerden dolayı, yaklaşık beş yıl önce Oracle tarafından,  kullanıcıların CentOS’tan Oracle Linux’a geçmelerine olanak sağlayan, basit bir script oluşturuldu. Ayrıca, CentOS topluluğunun üyelerine, komut dosyasını daha fazla CentOS kullanım durumlarını kapsayacak şekilde geliştirilmesine ve genişletilmesine yardımcı olabilmeleri için de, komut dosyası GitHub’a taşındı.

Uyumluluk

Oracle Linux, Red Hat Enterprise Linux (RHEL) ile% 100 uyumlu uygulama ikilisidir. 2006 lansmanından bu yana, kuruluşlar, herhangi bir uyumluluk hatası kaydedilmeden Oracle Linux çalıştırmaktadır.

Oracle, iki kernel seçeneği sunar: Oracle Linux için Unbreakable Enterprise Kernel (UEK) veya Red Hat Compatible Kernel (RHCK). Her ikisi de Oracle tarafından desteklenmektedir. UEK, işlem planlayıcı, bellek yönetimi, dosya sistemleri ve ağ yığınına kapsamlı performans ve ölçeklenebilirlik geliştirmeleri sunmakta.

Tasarım

Oracle Linux, tüm iş yükleri ve x86 ve Arm dahil olmak üzere geniş bir sistem yelpazesi için tasarlanmıştır. Oracle Linux, Oracle veya üçüncü taraf donanım, Oracle Bulut Altyapısı veya başka bir genel bulut seçiminiz üzerinde, hem Oracle hem de üçüncü taraf uygulama yazılımlarını optimum şekilde desteklemek için tasarlanmıştır.

Komut dosyası, CentOS Linux 6, 7 veya 8’i Oracle Linux’un eşdeğer sürümüne geçirebilir. İşlemin ne kadar basit olduğunu bu makelde görebileceğiz.

Desteklenen versiyonlar

CentOS Linux 6-7-8

CentOS Stream desteği yoktur.

Başlamadan önce:

ÖNEMLİ:

  1. Bu komut dosyası devam eden ve hala geliştirilen bir çalışmadır ve olası tüm yapılandırmaları desteklemiyor olabilir. Komut dosyasının, sistemi başarılı bir şekilde dönüştürememesi durumunda, bu işleme başlamadan önce lütfen sistemin tam bir yedeğini aldığınızdan emin olun.
  2. Standart olmayan tüm kernel’ları kaldırın. GRUB2 BootHole güvenlik açığı nedeniyle, SecureBoot yalnızca Oracle tarafından imzalanan kernel’leri önyüklenebilir ve yalnızca varsayılan CentOS kernel’leri değiştirilebilir. SecureBoot şu anda devre dışı bırakılmışsa bunun bir etkisi olmayabilir, ancak daha sonraki bir tarihte etkinleştirmek sistemi önyüklenemez hale getirebilir.
  3. CentOS yum veya dnf yapılandırmanızın çalıştığından ve eski repo’ların olmadığından emin olun.
  4. Non-CentOS tüm depoları devre dışı bırakın. Geçişten sonra depoları yeniden etkinleştirebilirsiniz.
  5. /var/cache içinde, en az 5 GB boş alanınız olduğundan emin olun.
  6. Tüm otomatik güncellemeleriniz varsa, ör. yum-cron aracılığıyla devre dışı bırakılmalıdır.

Migration işlemleri

1.Adım

Öncelikle GitHub’dan centos2ol.sh komut dosyasını indireceğiz. Komut dosyasını almanın en basit yolu, curl komutunu kullanmaktır.

curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh

Eğer git yüklediyseniz, bunun yerine git deposunu GitHub’dan klonlayabilirsiniz.

Bu komut dosyası, CentOS’a özgü paketleri kaldırarak veya bunları Oracle Linux eşdeğeriyle değiştirerek, bir CentOS sistemini, otomatik olarak Oracle Linux’a geçirmek için tasarlanmıştır.

Var olan repoları görmek için aşağıdaki komutu kullanalım.

yum repolist

Scripti çalıştırmadan önce, CentOS dışındaki tüm repoları ya disable edin ya da tamamen silin.

Ben bu örnekte komple silerek devam edeceğim.

yum remove epel-release

Epel’e ait cache’lenmiş herşeyi de temizliyorum.

yum clean all

CentOS’a ait olmayan tüm repolar tamamen silindi.

yum repolist

2.Adım

Komut dosyasını indirdikten sonra bu komut dosyasını root olarak çalıştırmamız gerekmekte. Eğer opsiyonları kullanmak isterseniz, “kullanım opsiyonları” başlığını inceleyiniz.

bash centos2ol.sh

İsterseniz, bu script’i executable duruma getirerek de çalıştırabilirdiniz.

chmod +x centos2ol.sh

./centos2ol.sh

Öncelikle var olan paketler upgrade ediliyor, sonrasında Oracle repoları download edilip işleme devam ediliyor.

Sürecin bir parçası olarak, işlem zamanlayıcı, bellek yönetimi, dosya sistemleri ve ağ yığınında kapsamlı performans ve ölçeklenebilirlik iyileştirmeleri sağlamak için varsayılan çekirdek, Oracle’ın Unbreakable Enterprise Kernel (UEK) en son sürümüne geçirilir. Ayrıca, mevcut CentOS çekirdeği, katı çekirdek sürümü kısıtlamaları uygulayan, herhangi bir özel donanım veya uygulama için gerekli olabilecek eşdeğer Red Hat Uyumlu Çekirdek (RHCK) ile değiştirilir.

İşlem bittiğinde, kernel kontrolü yapalım.

Yukarıdaki çıktıdaki ilk satır, ana kernel sürümü 5.4’e dayanan UEK R6’dır. İkinci kernel, migration işlemi tarafından yüklenen güncellenmiş RHCK (Red Hat Uyumlu Çekirdek) iken, son satır ise kurtarma çekirdeğidir.

İşlem başarılı bittikten sonra sistemimizi reboot edelim.

Açılış sırasında, artık Oracle kernel da görünmekte. Default kernel bu olacağı için, aksini belirtmediğimiz sürece bu kernel yüklenecek.

Yeni işletim sisteminin ne olduğunu kontrol edelim.

cat /etc/redhat-release

Artık hostname’i de değiştiriyorum 🙂

hostnamectl set-hostname oracle8.isleyen.net

Script Kullanım opsiyonları

  • -r : Oracle Linux RPM’lerle tüm CentOS RPM’leri yeniden yükler.

Bir sistem Oracle Linux’a geçtiyse ve önceden yüklenmiş bir paketin daha yeni bir Oracle Linux sürümü yoksa, CentOS sürümü kalır. Bu seçenek, Oracle Linux’tan, aynı sürümle herhangi bir CentOS RPM’yi yeniden yüklemeyle devam eder. Bu, destek için gerekli değildir ve bir sistem işlevselliğini etkilemez, ancak kullanıcının CentOS GPG anahtarlarını güven deposundan kaldırabilmesi için sunulur. Dolaysıyla, yeniden yükleme işleminden sonra Oracle olmayan tüm RPM’lerin bir listesi görüntülenecektir.

  • -v : Geçişten önce ve sonra RPM bilgilerinin doğrulanmasını sağlar.

Bu seçenek /var/tmp/ içinde dört çıktı dosyası oluşturur:

${hostname}-rpms-list-[before|after].log: Oracle Linux’a geçişten önce ve sonra kurulu paketlerin sıralanmış listesi.

${hostname}-rpms-verified-[before|after].log: Oracle Linux’a geçmeden önce ve sonra kurulu tüm paketler için RPM doğrulama sonuçları.

Varsayılan kernel nasıl değiştirilir? (Opsiyonel)

Geçiş tamamlandıktan sonra, UEK kernel kullanmak istemezseniz, yeniden başlatmadan önce, varsayılan çekirdek RHCK olarak ayarlanabilir. Esasen bu işlemi, istediğiniz herhangi bir zamanda da yapabilirsiniz.

İlk olarak, kurulu tüm çekirdekleri listelemek için grubby komutunu kullanıyoruz.

grubby –info=ALL | grep ^kernel

grubby –default-kernel

Varsayılan kernel’i değiştirmek için, ya vmlinuz dosyasının yolunu ya da dizinini belirtmeniz gerekir. Değişim için bu bilgileri almak üzere, grubby komutunu kullanabiliriz.

grubby –info /boot/vmlinuz-4.18.0-240.10.1.el8_3.x86_64

Son olarak, vmlinuz yolunu sağlayarak, varsayılan kernel’i değiştirmek için aşağıdaki komutu kullanıyoruz.

grubby –set-default /boot/vmlinuz-4.18.0-240.10.1.el8_3.x86_64

Bu işlemden sonra sunucuyu restart ederseniz, RHCK ile sisteminiz default olarak açılacaktır.

CentOS 8 sunucumuzun, Oracle 8 sunucuya migration işlemleri bu adımlardan ibarettir.

Yararlı olması dileğiyle.

Yusuf İşleyen