CentOS 8-এ কী নতুন?
CentOS-এর ৮ম সংস্করণ ২৪ সেপ্টেম্বর ২০১৯-এ প্রকাশিত হয়েছিল। CentOS হলো Red Hat Enterprise Linux (RHEL)-এর উপর ভিত্তি করে তৈরি একটি লিনাক্স ডিস্ট্রিবিউশন যা RHEL-এর সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ।
CentOS 8-এর প্রধান পরিবর্তনগুলো নিচে দেওয়া হলো:
- Linux কার্নেল ৪.১৮ ব্যবহার করা হয়েছে;
- yum প্যাকেজ ম্যানেজার থেকে dnf-এ স্থানান্তর। বর্তমানে yum, dnf-এর একটি সিমলিংক হিসেবে অস্তিত্বে আছে;
- মূল রিপোজিটরি দুটি ভাগে ভাগ করা হয়েছে — BaseOS এবং AppStream। এটি ব্যবহারকারীদের বিভিন্ন প্যাকেজ সংস্করণ ইনস্টল করার সুবিধা দেয়। BaseOS 이전ের মতোই কাজ করে;
- সকল সফটওয়্যার আপডেট করা হয়েছে, কার্নেল সহ। এখন বেসিক রিপোজিটরি থেকে PHP 7.2 ইনস্টল করা সম্ভব (শেষ পর্যন্ত!);
- Iptables-কে nftables-দ্বারা প্রতিস্থাপন করা হয়েছে;
- নেটওয়ার্ক সেটিংস কনফিগার করার জন্য ডিফল্টভাবে network-scripts ব্যবহার করা হয় না। নেটওয়ার্ক পরিচালনার জন্য Network Manager ব্যবহার করতে হবে;
- ডিফল্টভাবে cockpit সার্ভার ম্যানেজমেন্ট ওয়েব ইন্টারফেস ইনস্টল থাকে (নতুনদের জন্য সুবিধাজনক);
- কন্টেইনার ম্যানেজ করার জন্য Docker বা Moby-এর পরিবর্তে Podman ব্যবহার করা হয়;
- উচ্চ পারফরম্যান্স এবং BBR ও NV কন্ট্রোল অ্যালগরিদম সাপোর্টের জন্য TCP/IP 4.16 স্ট্যাকের নতুন সংস্করণ যোগ করা হয়েছে;
- নতুন ডিস্ট্রিবিউশন সংস্করণ।
ISO ইমেজ থেকে CentOS 8 ইনস্টলেশন পদ্ধতি
আমি KVM ভার্চুয়াল মেশিনে CentOS ইনস্টল করেছিলাম, তাই অফিসিয়াল মিরর (https://www.centos.org/download/mirrors/) থেকে ইনস্টলেশন ISO ইমেজটি আগে থেকে ডাউনলোড করে ভার্চুয়াল সার্ভারে OS ইনস্টল করার জন্য মাউন্ট করেছিলাম। (যদি আপনি ফিজিক্যাল সার্ভারে CentOS ইনস্টল করতে চান, তবে ইনস্টলেশন ISO ইমেজটি একটি USB স্টিকে লিখুন।) CentOS 8-এর ইনস্টলেশন প্রক্রিয়া পূর্বের সংস্করণের থেকে 별로 ভিন্ন নয়, এবং এই আর্টিকেলটি প্রথমবার ইনস্টলেশন করার ব্যবহারকারীদের জন্য একটি গাইড হিসেবে লিখা হয়েছে।
CentOS 8 ইনস্টলেশনের জন্য প্রস্তাবিত ন্যূনতম প্রয়োজনীয়তা হলো কমপক্ষে ১০ GB ডিস্ক স্পেস এবং প্রতি CPU কোরের জন্য ৭১২ MB RAM।
আপনার কম্পিউটার বা ভার্চুয়াল মেশিনকে CentOS ইনস্টল ইমেজ থেকে বুট করুন। প্রথম ধাপে আপনাকে পরবর্তী ক্রিয়াকলাপ নির্বাচন করতে বলা হবে। যেহেতু আমাদের ইনস্টলেশন করতে হবে, মেনুর প্রথম আইটেমটি নির্বাচন করুন:
Install CentOS Linux 8.0.1905
এটি নির্বাচন করার পর ইনস্টলেশন প্রক্রিয়া শুরু হয়। প্রয়োজনীয় সফটওয়্যার লোড হওয়ার সময় আপনি শুধু প্রক্রিয়াটি পর্যবেক্ষণ করতে পারেন, কিছু করতে হবে না।
যখন কালো স্ক্রিন CentOS লোগো সহ ইন্টারঅ্যাক্টিভ স্ক্রিনে পরিবর্তিত হয়, আপনার কীবোর্ড এবং মাউস হাতের নিকট রাখুন।
স্বাগত স্ক্রিনে আপনাকে ইনস্টলেশন প্রক্রিয়ার সময় 사용할 ভাষা নির্বাচন করতে বলা হবে। তারপর Continue-এ ক্লিক করুন। পরবর্তী মেনুতে আপনি বেসিক CentOS ইনস্টলেশন সেটিংস নির্বাচন করবেন।
ইনস্টলেশন শুরু করার জন্য আপনাকে শুধু একটি আইটেম কনফিগার করতে হবে: Installation Destination। সেখানে আপনি ডিস্ক পার্টিশন লে আউট নির্বাচন করবেন, তবে আমি এই ধাপে নেটওয়ার্ক, সময় এবং তারিখ কনফিগার করতে পছন্দ করি।
আপনার টাইম জোন অনুযায়ী সেটিংস নির্বাচন করুন।
নেটওয়ার্ক কনফিগার করতে, Network & Host Name-এ ক্লিক করুন।
Host Name ফিল্ডে আপনার সার্ভারের নাম নির্দিষ্ট করুন, এবং নেটওয়ার্ক ইন্টারফেস কনফিগার করতে Configure-এ ক্লিক করুন।
General ট্যাবে, Automatically connect to this network when it is available চেকবক্সটি টিক দিন যাতে এই নেটওয়ার্ক ইন্টারফেসটি স্বয়ংক্রিয়ভাবে শুরু হয়।
IPv4 Settings ট্যাবে যান (অথবা IPv6 প্রোটোকল ব্যবহার করলে সেটিতে) IP ঠিকানা, নেটমাস্ক, গেটওয়ে এবং DNS সার্ভার সেট করতে:
নির্দিষ্ট IP ঠিকানা দিতে, Manual মেথড নির্বাচন করুন এবং Add-এ ক্লিক করুন। পরিবর্তনগুলো সংরক্ষণ করার পর প্রাথমিক নেটওয়ার্ক কনফিগারেশন স্ক্রিনে ফিরে যান।
স্ক্রিনশটে দেখুন, IP ঠিকানা যোগ হয়েছে এবং নেটওয়ার্ক ইন্টারফেস কাজ করছে (স্ট্যাটাস: Connected)।
পরবর্তী ধাপে, আমরা ডিস্ক পার্টিশনিং-এ যাব:
শুধু ইনস্টলেশন প্রক্রিয়া দেখানোর জন্য, আমি CentOS ডেভেলপারদের অটোমেটিক স্টোরেজ কনফিগারেশন ব্যবহার করেছিলাম। আপনি যদি অন্য উপায়ে ডিস্ক পার্টিশন করতে চান, তবে Custom নির্বাচন করুন।
যদি আপনার সার্ভার স্টোরেজ কন্ট্রোলার হার্ডওয়্যার RAID সাপোর্ট না করে, তবে আপনি mdadm ব্যবহার করে আপনার সার্ভার ডিস্কগুলিতে সফটওয়্যার RAID কনফিগার করতে পারেন।
যেহেতু আমার ভার্চুয়াল মেশিনে আগে থেকে একটি গেস্ট OS ইনস্টল করা ছিল, ইনস্টলেশন প্রক্রিয়াটি সেটি শনাক্ত করেছিল। পরবর্তী মেনুগুলোতে আমি পূর্বের অপারেটিং সিস্টেমের পার্টিশনগুলো মুছলাম:
পার্টিশনগুলো মুছতে Delete all-এ ক্লিক করুন। তারপর উপলব্ধ ডিস্ক স্পেস আপডেট করতে Reclaim space-এ ক্লিক করুন।
ইনস্টলেশনের জন্য প্যাকেজের তালিকা Software Selection-এ নির্বাচন করা হয়। আপনি যদি CentOS 8-কে সার্ভার হিসেবে ব্যবহার করতে চান, তবে Minimal Install বেছে নেওয়া যথেষ্ট, সাথে Standard এবং Guest Agents (যদি ভার্চুয়াল মেশিনে গেস্ট OS ইনস্টল করেন)।
এটি করার পর Begin Installation-এ ক্লিক করে ইনস্টলেশন শুরু করুন।
প্রয়োজনীয় কম্পোনেন্ট আনপ্যাক এবং ইনস্টল করার সময় আপনাকে root ইউজারের পাসওয়ার্ড দিতে বলা হবে। আপনি অন্য একটি ইউজারও তৈরি করতে পারেন, তবে এটি ঐচ্ছিক।
Root Password-এ ক্লিক করুন, পাসওয়ার্ড দিন এবং নিশ্চিত করুন। তারপর ইনস্টলেশনে ফিরে যাওয়ার জন্য Done-এ ক্লিক করুন।
CentOS 8 ইনস্টলেশন প্রায় ৫-৭ মিনিট সময় নেয়। যখন ইনস্টলেশন স্ক্রিনে Reboot বাটন দেখবেন, তখন বুঝবেন ইনস্টলেশন সম্পন্ন হয়েছে, এবং আপনাকে আপনার সার্ভার রিস্টার্ট করতে হবে।
এভাবে CentOS 8 ইনস্টলেশন সম্পন্ন হয়।
ইনস্টলেশনের পর CentOS 8 বেসিক সেটিংস কনফিগারেশন
CentOS 8-এর বেসিক পোস্ট-ইনস্টল কনফিগারেশন CentOS 7-এর সাথে প্রায় একই, এবং আমি সকল সার্ভারে একই বেসিক সেটিংস কনফিগার করি।
CentOS-এ আপডেট এবং অ্যাডমিনিস্ট্রেটর টুলস ইনস্টল করুন
উল্লেখ্য인들은, CentOS 8-এ yum-কে dnf প্রতিস্থাপন করেছে।
Dnf হলো YUM অ্যাপ্লিকেশনের পরবর্তী প্রজন্ম, লিনাক্স ডিস্ট্রিবিউশনগুলির জন্য একটি RPM প্যাকেজ ম্যানেজার। পূর্বে dnf Fedora ডিস্ট্রিবিউশনগুলিতে ব্যবহৃত হতো, এখন এটি CentOS 8-এ এসেছে। নতুন ইনস্টল করা সার্ভারে আমি প্রথমে সিস্টেম আপডেট করি:
# dnf update -y
যদি ইমেজ আপ-টু-ডেট থাকে, তবে আপডেট করার জন্য কোনো প্যাকেজ নাও থাকতে পারে, আমার 케이সের মত:
Dependencies resolved. Nothing to do. Complete!
যদি কোনো আপডেট থাকে, তবে সেগুলো ইনস্টল করুন।
পরবর্তী ধাপে, EPEL রিপোজিটরি সক্ষম করুন এবং সুবিধাজনক সার্ভার অ্যাডমিনিস্ট্রেশনের জন্য টুলস ইনস্টল করুন:
# dnf install epel-release -y
# dnf install mc wget screen nano net-tools bind-utils curl lsof vim -y
এই ইউটিলিটিগুলো আমার জন্য যথেষ্ট, তবে আপনি আপনার অভ্যাস অনুযায়ী অন্যান্য টুলস ইনস্টল করতে পারেন।
আমি অটোমেটিক সিস্টেম আপডেট ব্যবহার করি না, কারণ আমি সবসময় প্রয়োজনীয় আপডেট ম্যানুয়ালি ইনস্টল করি। আপনি যদি অটোমেটিক আপডেট কনফিগার করতে চান, তবে dnf-automatic প্যাকেজ ইনস্টল করুন:
# dnf install -y dnf-automatic
সক্রিয় সিস্টেম আপডেট টাস্ক চেক করতে এই কমান্ডটি দিন:
# systemctl list-timers *dnf-*
CentOS-এ SELinux ডিজেবল কিভাবে করবেন?
প্রাথমিক সার্ভার সেটআপ স্টেজে, আমি সবসময় SELinux ডিজেবল করি (পরিবর্তনগুলো প্রযোজ্য করার জন্য আপনাকে সার্ভার রিবুট করতে হবে):
# nano /etc/sysconfig/selinux
# reboot
আপনি অন-দ-ফ্লাই SELinux ডিজেবল করতে এই কমান্ডটি ব্যবহার করতে পারেন:
setenforce 0
CentOS 8-এ নেটওয়ার্ক সেটিংস কনফিগারেশন
যেহেতু আমি OS ইনস্টলেশনের সময় নেটওয়ার্ক সেটিংস কনফিগার করেছিলাম, এখন সেটি করার দরকার নেই (CentOS-এ নেটওয়ার্ক কনফিগারেশনের বিস্তারিত আর্টিকেলটি এখানে দেখুন)। আমি শুধু জানাতে চাই যে CentOS 8-এ আপনি শুধু Network Manager এবং nmcli ব্যবহার করে নেটওয়ার্ক পরিচালনা করতে পারেন। Network-scripts ডিফল্টভাবে সাপোর্টেড নয়। বাস্তবে, আমি আগে সবসময় NM ডিজেবল করতাম এবং এটি ব্যবহার করতাম না, কারণ এটি আমার জন্য সুবিধাজনক ছিল না, কিন্তু এখন আমাকে এটি শিখতে হবে।
নেটওয়ার্ক স্ট্যাটাস চেক করার পদ্ধতি:
# systemctl status NetworkManager
CentOS 8-এ হোস্টনেম পরিবর্তন কিভাবে করবেন?
আপনি যদি CentOS ইনস্টলেশনের সময় সঠিক সার্ভার হোস্টনেম সেট না করে থাকেন বা কেবল এটি পরিবর্তন করতে চান, তবে আপনি এটি অনেক উপায়ে করতে পারেন। /etc/hostname ফাইলে এডিট করুন বা নিচের কমান্ড ব্যবহার করে পরিবর্তন করুন:
# hostnamectl set-hostname mycentos8server
CentOS 8-এ Firewalld কনফিগার করুন
আপনার প্রয়োজনীয় সার্ভিসগুলো (SSH এবং HTTP/HTTPS) firewalld-এ trusted zones-এ যোগ করুন:
firewall-cmd --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
CentOS-এ সময় এবং টাইমজোন পরিবর্তন
CentOS-এ বর্তমান সময় এবং টাইমজোন দেখতে date কমান্ড দিন:
# date
আমরা সিস্টেম ইনস্টলেশনের সময় টাইমজোন সেট করেছিলাম, তাই আমাদের NY টাইম দেখাচ্ছে। টাইমজোন পরিবর্তন করতে tilsvarende কমান্ড ব্যবহার করুন:
# timedatectl set-timezone America/Toronto
সকল উপলব্ধ টাইম জোন তালিকাভুক্ত করতে নিচের কমান্ডটি চালান:
# timedatectl list-timezones
সময় সিঙ্ক্রোনাইজ করার জন্য chronyd ব্যবহার করা হয়, আমরা এটিকে systemctl ব্যবহার করে সক্রিয় এবং অটোস্টার্টে যোগ করব:
# systemctl start chronyd
# systemctl enable chronyd
# systemctl status chronyd
Bash History কনফিগার করুন
Bash কমান্ড হিস্টরি আরও সুবিধাজনকভাবে দেখার জন্য, আমি সবসময় .bashrc-এ দুটি লাইন যোগ করি যাতে আমার প্রয়োজনীয় কমান্ড হিস্টরি তথ্য সহজে পেতে পারি।
ডিফল্ট সেটিংস দিয়ে history আউটপুট এভাবে দেখায়:
# history
1 dnf repolist 2 dnf install epel-release
এটি মানে আমরা কী কমান্ডগুলো এক্সিকিউট করা হয়েছে তা দেখতে পাই, কিন্তু সময় এবং তারিখ দেখতে পাই না। এটি আমার জন্য অত্যন্ত গুরুত্বপূর্ণ। তাহলে history ভিউকে আরও সুবিধাজনক করা যাক। /root/.bashrc খুলুন এবং কিছু লাইন যোগ করুন:
# nano /root/.bashrc
export HISTSIZE=10000
export HISTTIMEFORMAT="%d/%d/%y - %H:%M:%S "
তখন আপনি history দেখলে, কমান্ডটি কখন রান করা হয়েছিল সেটির সঠিক সময় এবং তারিখ দেখতে পাবেন:
# history
1 Jun/06/29 - 16:16:29 dnf repolist 2 Jun/06/29 - 16:16:29 dnf install epel-release
Cockpit: CentOS 8-এ সার্ভার ম্যানেজমেন্ট ওয়েব ইন্টারফেস
যে ভাবে আমরা ইতিমধ্যে উল্লেখ করেছি, CentOS 8-এ cockpit সার্ভার ম্যানেজমেন্ট ওয়েব ইন্টারফেস প্রি-ইনস্টলড থাকে। আপনি এটিও systemctl ব্যবহার করে ম্যানেজ করতে পারেন। আপনি এটিকে চালু এবং স্টার্টআপে যোগ করতে পারেন:
# systemctl enable cockpit.socket
# systemctl start cockpit.socket
ডিফল্টভাবে, Cockpit ওয়েব সার্ভার Port TCP/9090-এ লিসেন করে। ফায়ারওয়ালে পোর্টটি অনুমোদিত করুন:
# firewall-cmd --get-active-zones
# firewall-cmd --add-port=9090/tcp --zone=MY_ACTIVE_ZONE --permanent
# firewall-cmd --reload
Cockpit ওয়েব ইন্টারফেস অ্যাক্সেস করতে, আপনার ব্রাউজারে এই URL খুলুন: https://Your-CentOS8-IP:9090 এবং প্রমাণীকরণ করুন।
Cockpit ব্যবহার করে আপনি আপনার সার্ভারের লোড দেখতে পারেন, নেটওয়ার্ক, স্টোরেজ এবং কন্টেইনার ম্যানেজ করতে পারেন বা লগস দেখতে পারেন।
টিপিক্যাল CentOS সার্ভার কনফিগারেশন সম্পন্ন, তারপর আমি সাধারণত আমার প্রজেক্টের স্টেটমেন্ট অনুযায়ী আধিক কনফিগারেশন করি, যা প্রয়োজনীয়তানুসারে পরিবর্তিত হতে পারে।