ইনস্টলের আগে Ubuntu ভার্সন ও আর্কিটেকচার দেখুন
VPS-এর নামের মধ্যে Ubuntu থাকাই যথেষ্ট নয়। চলমান release, CPU architecture, cloud-init ও repository-র package আপনার অ্যাপের সঙ্গে মেলে কি না পরীক্ষা করুন।
VPSuntu · হালনাগাদ · পড়তে প্রায় 4 মিনিট
এই নির্দেশনায়
অ্যাপের প্রয়োজন আগে লিখুন
Runtime, database, native extension, monitoring ও backup agent-এর সমর্থিত release এবং architecture লিখুন। Vendor-এর সমর্থন ও নিজের পরীক্ষার ফল আলাদা রাখুন। Provider-এর image list ও maintenance window দেখুন। Ubuntu 24.04-এর সাধারণ package family Python 3.12, PHP 8.3 ও PostgreSQL 16; patch version সময়ের সঙ্গে বদলায়।
চলমান release ও architecture পড়ুন
cat /etc/os-release
uname -r
dpkg --print-architecture
uname -mOS release-এর VERSION_ID distribution-এর সংস্করণ বলে; kernel number তার বিকল্প নয়। dpkg-এ amd64 সাধারণত uname-এ x86_64, arm64 সাধারণত aarch64। amd64-only binary Arm VM-এ স্বয়ংক্রিয়ভাবে চলে না।
প্রথম provisioning শেষ হয়েছে কি দেখুন
cloud-init থাকলে তার অবস্থা দেখুন। না থাকলেই image ত্রুটিপূর্ণ নয়; provider অন্য provisioning পদ্ধতি ব্যবহার করতে পারে।
if command -v cloud-init >/dev/null 2>&1; then
cloud-init status --long
else
printf '%s\n' 'cloud-init is not installed; check the provider provisioning method.'
fiRunning হলে শেষ হওয়া পর্যন্ত অপেক্ষা করুন। Error বা degraded result হলে নির্দিষ্ট module ও log দেখুন। Done শুধু provisioning-এর অবস্থা, অ্যাপের সুস্থতার প্রমাণ নয়।
sudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.logLog শেয়ারের আগে token, key ও ব্যক্তিগত তথ্য ঢাকুন। Error মুছতে cloud-init clean চালানো বা network file overwrite করা সমস্যার কারণ সমাধান করে না।
Repository-তে আসলে কোন package আছে দেখুন
sudo apt update
apt-cache policy python3 php postgresql
apt-cache policy python3.12 php8.3 postgresql-16Installed: (none) মানে বসানো নেই; Candidate: (none) হলে enabled repository, component, package name ও architecture দেখুন। এলোমেলো repository যোগ করবেন না। Default বা meta-package-এর family এবং চলমান executable-এর version আলাদা করে যাচাই করুন। Database client-এর version-কে server version ধরে নেবেন না।
Runtime ও CPU mismatch আলাদা করুন
উদাহরণ: অ্যাপ Python 3.10 এবং amd64-only extension চায়, অথচ নতুন VM Ubuntu 24.04 arm64। এখানে দুটি mismatch আছে। amd64 image নিলে architecture বদলাবে, Python version নয়; virtual environment-ও আলাদা Python interpreter তৈরি করে না।
OS-এর Python সরিয়ে নিজের version বসাবেন না। অ্যাপ update অথবা রক্ষণাবেক্ষণ করা isolated runtime/container বিবেচনা করুন। পুরোনো OS বাছলে তার security maintenance দেখুন। Extension load, database write, background job ও restore-সহ সম্পূর্ণ workflow পরীক্ষা করুন; শুধু homepage খোলা যথেষ্ট নয়।
Container-এর সীমাও বুঝুন
Container host kernel, network ও storage-এর ওপর নির্ভর করে। Image-এর native architecture দেখুন; emulation-এ চলাকে production capacity-এর প্রমাণ ভাববেন না। Persistent data কোথায় আছে এবং কীভাবে restore হবে লিখুন।
Version বা digest pin করলে পুনরাবৃত্ত deployment সহজ হয়, তবে security update-এর পরিকল্পনাও চাই। দুর্বল image স্থায়ীভাবে রেখে দেওয়া সমাধান নয়। Ubuntu Main, Ubuntu Pro এবং third-party package-এর maintenance scope আলাদা।
Update ও release upgrade আলাদা রাখুন
apt list --upgradable
systemctl --failed
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fiPackage metadata refresh-এর পরে update তালিকা দেখুন। Package update, service restart এবং নতুন Ubuntu release-এ upgrade এক কাজ নয়। Reboot flag না থাকাই কোনো restart দরকার নেই—এমন নিশ্চয়তা নয়।
Release upgrade আগে copy-তে repository, native module, database ও সম্পূর্ণ workflow পরীক্ষা করুন। Rollback-এর সময় নতুন write কোথায় যাবে ঠিক করুন; পুরোনো snapshot ফিরিয়ে দিলে পরের data হারাতে পারে। Final synchronization ও maintenance window পরিকল্পনা করুন।
যাচাইয়ের ফল সংরক্ষণ করুন
ছোট পর্দায় সব কলাম দেখতে টেবিলটি পাশে স্ক্রল করুন।
| নথি | যা রাখবেন |
|---|---|
| OS ও image | Release, architecture, kernel এবং image ID |
| অ্যাপ | Build, runtime, lockfile ও repository |
| Provisioning | ফলাফল ও প্রাসঙ্গিক log; গোপন তথ্য নয় |
| Acceptance test | Workflow, ফল ও পরীক্ষার তারিখ |
| Maintenance | দায়িত্ব, window ও alert |
| Recovery | Copy-এর স্থান, পদ্ধতি ও শেষ restore test |
Repository-তে password বা private key রাখবেন না। প্রস্তুত image নিয়ে প্রথম HTTPS site প্রকাশ করুন। Oracle quota ব্যবহার করলে যোগ্য image ও SSH প্রস্তুতির ধাপ দেখুন।
প্রশ্ন ও উত্তর
সব সময় Ubuntu 24.04 নেব?
অ্যাপ, provider image ও সম্পূর্ণ dependency যে রক্ষণাবেক্ষণ করা release সমর্থন করে সেটি বেছে নিন। নতুন release-এ আগে পরীক্ষা করুন।
Image বদলানো কি সাধারণ update?
Reinstall disk-এর data মুছে দিতে পারে। Package update, release upgrade ও নতুন image দিয়ে reinstall আলাদা কাজ।