Migrating CentOS 7 to AlmaLinux 9

Published on July 6, 2024
Migrating CentOS 7 to AlmaLinux 9

การอัพเกรดระบบให้ทันสมัยอยู่ตลอดเวลานั้น มีประโยชน์ในหลายๆ เรื่อง โดยเฉพาะอย่างยิ่งเรื่องของการทำให้ระบบนั้นมีความปลอดภัย อย่างที่ทุกคนทราบแล้วว่า CentOS นั้นถูกประกาศว่า End-of-Life ไปแล้ว เพราะฉะนั้นผู้ที่ใช้ CentOS อยู่ก็จะไม่มีซอฟต์แวร์ออกมาอัพเกรด ในขณะที่ปัจจุบันช่องโหว่ก็มีการค้นพบขึ้นเรื่อยๆ และ บางช่องโหว่นั้น ถือเป็นระดับ วิกฤตที่ ทำให้ระบบเสี่ยงต่อความเสียหายได้

สำหรับ Alma Linux นั้นเป็น Linux Distribution ตัวหนึ่งที่เป็นทางเลือกอันดับต้นๆ สำหรับผู้ที่ต้องการ Migrate จาก CentOS วันนี้เราก็เลยขอนำเสนอวิธีการ Migration CentOS 7 ไปเป็น Alma Linux 9 เพื่อให้ระบบของท่านทันสมัยอยู่ตลอดเวลา

สำหรับขั้นตอนที่ 1 เราจะทำการเช็คก่อนว่า CentOS ของเรานั้นเป็น version อะไร โดยการใช้คำสั่ง

more /etc/*release*

โดยเราจะได้ตัวอย่างดังนี้

showing centos 7 release

จากตัวอย่างเราจะเห็นว่าตอนนี้ใช้ CentOS 7.9.2009 อยู่ซึ่งเป็นในตระกูล 7

หลังจากนั้นให้ท่านพิมพ์คำสั่ง

yum update -y

เพื่อทำการอัพเดท package ในระบบว่าเป็นตัวใหม่ที่สุดก่อน ที่จะทำการ migrate

หลังจากนั้นให้ท่านพิมพ์

reboot

เพื่อทำการรีบูตเครื่อง
หลังจากนัันให้ท่านพิมพ์

yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm

เพื่อทำการติดตั้ง package สำหรับการเปลี่ยนมาเป็น almalinux

หลังจากนั้นให้ท่านพิมพ์

yum install -y leapp-upgrade leapp-data-almalinux

เพื่อทำการติดตั้ง leapp ซึ่งเป็นโปรแกรมช่วยในการอัพเกรดระบบ

หลังจากนั้นให้ท่านพิมพ์

leapp preupgrade

เพื่อเป็นการเช็คว่าระบบของท่านพร้อมสำหรับการ migrate หรือไม่ โดยผลลัพธ์ที่ได้ จะต้องเป็นสีเขียวในตอนท้าย ถ้าเป็นสีแดง ท่านจะต้องเช็คว่า error นั้นเกิดจากอะไร ใน /var/log/leapp/leapp-report.txt
โดยในไฟลฺ์ดังกล่าวเมื่อท่านเปิดขึ้นมาแล้ว ให้ทำการแก้ไข ตามคำแนะนำ ในส่วนที่เขียนว่า Risk Factor: high แต่ละข้อให้หมด ไม่งั้นท่านจะไม่สามารถทำการ migrate ได้

multiple dev kernels installed errors

เช่นในตัวอย่างที่ปรากฏ ระบบจะบอกว่า มี package kernel dev นั้นติดตั้งเยอะเกินไป ถ้าท่านไปตรวจสอบในไฟล์ /var/log/leapp/leapp-report.txt ท่านจะพบว่า ระบบจะบอกให้แก้ไขคือ

Risk Factor: high (inhibitor)
Title: Multiple devel kernels installed
Summary: DNF cannot produce a valid upgrade transaction when multiple kernel-devel packages are installed.
Remediation: [hint] Remove all but one kernel-devel packages before running Leapp again.
[command] yum -y remove kernel-devel-3.10.0-862.9.1.el7 kernel-devel-3.10.0-1062.7.1.el7 kernel-devel-3.10.0-1160.119.1.el7 kernel-devel-3.10.0-1160.80.1.el7
Key: 8ceea81afbbb1a329b7d82ca7212b21509e5b256
----------------------------------------

หลังจากทำการแก้ไขแล้ว ก็ให้ท่านพิมพ์

leapp preupgrade

ระบบก็จะบอกว่า ทุกอย่างถูกต้องและพร้อมสำหรับการ Migrate ตามตัวอย่างด้านล่าง

Ready to Migrate Leapp

เมื่อเราได้ผลลัพธ์สีเขียว เราก็พิมพ์คำสั่ง

leapp upgrade

เพื่อทำการ migrate หรือ upgrade ไปเป็นไป AlmaLinux 8 ก่อน ซึ่งเราจะทำเป็นขั้นตอน คือ จะต้องอัพเป็น AlmaLinux 8 ก่อน และ ทำการอัพเกรดอีกครั้งเป็น AlmaLinux 9

หมายเหตุ : ในบางครั้งระบบอาจจะแจ้งว่ามี Error

Error Summary
-------------
Disk Requirements:
   At least XXXXMB more space needed on the / filesystem.

ถึงแม้ว่าใน partition / ของท่านจะมีเนื้อที่เหลือเยอะ หากขึ้น error ดังกล่าวขอให้ท่านพิมพ์

export LEAPP_OVL_SIZE=4096

และทำการพิมพ์คำสั่ง

leapp upgrade อีกครั้ง

หลังจากเราได้หน้าจอสีเขียวแล้ว เราก็พิมพ์คำสั่ง

migration completed

reboot

เพื่อทำการ รีบูตเครื่อง
หลังจากทำการ migrate มาเป็น AlmaLinux 8 เรียบร้อยแล้ว ขั้นตอนต่อไปคือ การอัพเกรดเป็น AlmaLinux 9  สำหรับขั้นตอนนี้ก็อาจจะใช้เวลานานหน่อยกว่าระบบจะทำการบูตขึ้นมาอีกครั้งหนึ่งเพราะ ระบบจะทำการอัพเกรดหลายๆ package ในระบบ

เมื่อระบบทำการบูตขึ้นมาเรียบร้อยแล้ว ให้ท่านทำการแก้ไขไฟล์ โดยการพิมพ์

vi /etc/yum.conf

หลังจากนั้น ทำการลบ ในส่วนของ exclude ทั้งหมด

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
exclude=python2-leapp,snactor,leapp-upgrade-el7toel8,leapp

ท่านก็จะได้เนื้อหาในไฟล์เป็นแค่

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
exclude=

และทำเช่นเดียวกันในไฟล์ /etc/dnf/dnf.conf

หลังจากนั้นท่านจะต้องดูว่า มี package อะไรบ้างที่ยังเหลือจาก CentOS 7 โดยการพิมพ์

rpm -qa | grep el7

ในกรณีของตัวอย่าง จะได้ผลลัพธ์ดังนี้

kernel-3.10.0-1160.80.1.el7.x86_64
libicu73-73.2-1.el7.remi.x86_64
leapp-0.14.0-1.el7.noarch
leapp-upgrade-el7toel8-0.16.0-6.el7.elevate.20.noarch
gd3php-2.3.3-7.el7.remi.x86_64
oniguruma5php-6.9.9-1.el7.remi.x86_64
libwebp7-1.0.3-2.el7.remi.x86_64
elevate-release-1.0-2.el7.noarch
python2-leapp-0.14.0-1.el7.noarch
kernel-3.10.0-1160.119.1.el7.x86_64
libicu69-69.1-4.el7.remi.x86_64
leapp-data-almalinux-0.2-5.el7.noarch
libicu71-71.1-2.el7.remi.x86_64

เพราะฉะนั้น จะต้องทำการ remove package เหล่านั้นออกด้วยคำสั่ง

yum remove libicu73-73.2-1.el7.remi.x86_64 leapp-0.14.0-1.el7.noarch leapp-upgrade-el7toel8-0.16.0-6.el7.elevate.20.noarch gd3php-2.3.3-7.el7.remi.x86_64 oniguruma5php-6.9.9-1.el7.remi.x86_64 libwebp7-1.0.3-2.el7.remi.x86_64 elevate-release-1.0-2.el7.noarch python2-leapp-0.14.0-1.el7.noarch kernel-3.10.0-1160.119.1.el7.x86_64 libicu69-69.1-4.el7.remi.x86_64 leapp-data-almalinux-0.2-5.el7.noarch libicu71-71.1-2.el7.remi.x86_64

หลังจากนั้นพิมพ์คำสั่ง

rm -fr /root/tmp_leapp_py3

เพื่อเช็คว่าไม่มี temporary folder ในระหว่างการ migration เหลืออยู่

หลังจากนั้นพิมพ์

dnf clean all

ต่อไปพิมพ์คำสั่ง

rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'

เพื่อทำการ ลบ gpg key เก่าๆ ออกจากระบบ

ขั้นตอนต่อไป เราจะทำการอัพเกรดเป็น AlmaLinux 9

ทำการ ติดตั้ง package เพื่อช่วยในการอัพเกรด

yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm

ทำการติดตั้ง leapp package สำหรับ AlmaLinux

yum install -y leapp-upgrade leapp-data-almalinux

ทำการเช็คว่าระบบพร้อมเพื่อการอัพเกรดหรือไม่ ด้วยคำสั่ง

leapp preupgrade

หมายเหตุ : ในหลายๆ เครื่องที่เราทำ ท่านจะต้องพิมพ์คำสั่ง

leapp answer --section check_vdo.no_vdo_devices=True

เพื่อเป็นการตอบคำถามเกี่ยวกับ vdo_device

เมื่อท่านได้หน้าจอบอกสีเขียว หรือไม่มี error อะไร ก็ให้ท่านพิมพ์

leapp upgrade

หลังจากนั้นก็ให้ท่านทำการ reboot เครื่องด้วยคำสั่ง

reboot

ก็เป็นอันเสร็จเรียบร้อย สำหรับการ migrate CentOS 7 ขึ้นมาเป็น AlmaLinux 8 และทำการอัพเกรดจาก AlmaLinux 8 เป็น AlmaLinux 9

 

 

Configuring Multiple VLANs in Proxmox VE Host

การตั้งค่าหลาย VLAN ใน Proxmox VE สำหรับการกำหนด VLAN หลายตัว (Multiple VLAN)...

Read more »

Changing IP Addresses of Proxmox VE Nodes

การเปลี่ยนแปลงไอพีของ Proxmox VE Cluster Nodes สำหรับการเปลี่ยนแปลง IP นั้นบางครั้งก็จำเป็น เพราะว่า เช่นไอพีคลาสเดิม...

Read more »

Creating Proxmox VE Cluster

สำหรับ Proxmox VE นั้นแน่นอนว่าสนับสนุนการทำ Clustering ในตัวอยู่แล้วเพื่อทำให้ระบบมี การจัดการทรัพยากรของเซิร์ฟเวอร์หลายเครื่องได้อย่างมีประสิทธิภาพ และเพิ่มความสามารถในการสำรองข้อมูล, การย้ายเครื่องเสมือน (VM)...

Read more »

Updating ML30 Gen10 Firmware with ILOREST

แน่นอนว่าการอัพเดท firmware ของทั้ง BIOS และอุปกรณ์ที่เกี่ยวข้องทั้งหมดใน Server นั้นเป็นสิ่งจำเป็นอย่างยิ่ง เพราะว่า เพื่อความปลอดภัย และ...

Read more »

Switches เดสก์ท็อปสวิตช์ 10/100Mbps 10 ช่อง

แนะนำอุปกรณ์ใหม่ มาแรง ใช้งานง่าย! Switches อุปกรณ์ต่อพ่วง Network Computer เดสก์ท็อปสวิตช์ 10/100Mbps 10...

Read more »

how to apply license key on a Proxmox VE host

สำหรับวันนี้ เราจะมาสอนเรื่องการ Activate License Key สำหรับ Proxmox VE กัน ซึ่งแน่นอนว่า...

Read more »