কি আপনি কাস্টম, রেডি-টু-ইউজ অপারেটিং সিস্টেম ইমেজ তৈরি করতে চান যেগুলো ভিএমওয়্যার ইমেজ, জেন ভার্চুয়াল মেশিন, লাইভ ডিভিডি বা ইউএসবি স্টিক থেকে বুট করা যাবে? কি আপনি আপনার ফিজিক্যাল ইনস্টলেশনকে একটি ডিপ্লোয়েবল ইমেজে রূপান্তর করতে চান? কি আপনি উপরের সব কাজ কমান্ড লাইন ছাড়া, শুধু একটি সহজ ভিজ্যুয়াল উইজার্ড ফলো করে কিছু ঘন্টার মধ্যে করতে চান? যদি সব जवাব বড় 'হ্যাঁ' হয়, তাহলে আপনি সঠিক আর্টিকেল পড়ছেন।
ভূমিকা
এটি করার অনেক উপায় আছে, কিন্তু কিউই (Kiwi)만큼 সম্পূর্ণ এবং শক্তিশালী কোনোটিই নয়।
কিউই (Kiwi) ওপেনএসইউবিল্ড সার্ভিস (openSUSE Build Service) দ্বারা ব্যবহৃত টুলগুলোর একটি, একটি সম্পূর্ণ ডিস্ট্রিবিউশন ডেভেলপমেন্ট প্ল্যাটফর্ম যা আপনাকে ওপেনএসইউ (openSUSE) এবং অন্যান্য লিনাক্স ডিস্ট্রিবিউশনের জন্য সফ্টওয়্যার তৈরি ও রিলিজ করতে দেয়। কিউই (Kiwi) ওপেনএসইউ (openSUSE)-এর উপর ফোকাস করে, আপনাকে নিম্নলিখিত কাজগুলো করতে দেয়:
- ওপেনএসইউ (openSUSE) ডিস্ট্রিবিউশনের একটি কাস্টম, বুটযোগ্য লাইভ সিডি/ডিভিডি ইমেজ তৈরি করুন, যেটিতে শুধু আপনার পছন্দ বা প্রয়োজনীয় প্যাকেজগুলো থাকবে।
- একটি বুটযোগ্য ইউএসবি ইমেজ তৈরি করুন।
- জেন (Xen), ভিএমওয়্যার (VMware) বা কিউইমিইউ (QEMU) ভার্চুয়াল ইমেজ তৈরি করুন, কনফিগারেশন ফাইলসহ।
- আপনার নিজের ইনস্টলেশনকে যেকোনো ধরনের ডিপ্লোয়েবল ইমেজে রূপান্তর (মাইগ্রেট) করুন।
আমরা ইতিমধ্যে এই কুল ট্রিকগুলোর অধিকাংশ দেখেছি:
- রিমাস্টারসিস (Remastersys) ছিল, যা ডেবিয়ান-ভিত্তিক ডিস্ট্রোতে চলে এবং আপনার ফিজিক্যাল ইনস্টলেশনকে একটি বুটযোগ্য .iso ইমেজে রূপান্তর করে, ব্যাকআপ বা লাইভ সিডি/ডিভিডি হিসেবে বিতরণের জন্য।
- পিসিলিনাক্সওএস (PCLinuxOS)-এ রিমাস্টার-অন-দ-ফ্লাই (remaster-on-the-fly) ছিল, যা রিমাস্টারসিসের মতোই কাজ করে।
- কিউইমিইউ (QEMU) কাজ করেছিল, ভিএমওয়্যার হার্ড ডিস্ক (.vmdk) কে আমাজন ইলাস্টিক কম্পিউট ক্লাউড (EC2) ইমেজ (.ami) এ রূপান্তর করত, যেমন এই টিউটোরিয়ালে আলোচনা করা হয়েছে।
- আমরা শিখেছি কিভাবে ভিএমওয়্যার সার্ভার এবং ইএসএক্সআই (ESXi) ভার্চুয়াল মেশিন ক্লোন করবেন।
- ভিএমওয়্যার কনভার্টার (VMware Converter) অনেক চমৎকার কাজ করেছিল, সব ধরনের ইমেজ তৈরি করত।
এখনও, এই অসাধারণ সমাধানগুলোর কিছু আমাদের প্রয়োজনীয় সব কিছু দেয়নি। উদাহরণস্বরূপ, রিমাস্টারসিস (Remastersys) ভার্চুয়াল মেশিন তৈরি করে না, শুধু এমন ইমেজ তৈরি করে যেগুলো গেস্ট অপারেটিং সিস্টেম হিসেবে ইনস্টল করতে হয়। এতে অতিরিক্ত কাজ ও ইউজার ইন্টারঅ্যাকশন লাগে। আমাজন রূপান্তরটি স্মার্ট ছিল, কিন্তু এটি মূলত কমান্ড-লাইন কাজ, বেশ কিছু প্রিপারেটরি স্টেপ এবং প্রচুর ইউজার ইন্টারঅ্যাকশন সহ। ভিএমওয়্যার কনভার্টার (VMware Converter) আমাদের প্রয়োজনীয় почти পুরো সমাধান দিয়েছিল। কিউই (Kiwi) এই সবই করতে পারে—এবং তার পাশাপাশি আরও অনেক কিছু। আশা করি আপনার আগ্রহ জেগেছে। চলুন এই শক্তিশালী সুন্দর টুলটি কী করতে পারে সেটি দেখি।
পূর্বশর্ত
কিউই (Kiwi) ব্যবহার করার আগে আপনাকে একটি কাজ অবশ্যই করতে হবে: ওপেনএসইউ (openSUSE) ইনস্টল করা থাকতে হবে, সংস্করণ ১০ বা তার উপরে। আমি ওপেনএসইউ (openSUSE) ইনস্টলেশন ও কনফিগারেশন দুবার বিস্তারিত, ধাপে ধাপে টিউটোরিয়ালে কভার করেছি: ইনস্টলিং সюз লিনাক্স (Installing SUSE Linux) একটি পুরনো আর্টিকেল; এতে ওপেনএসইউ ১০.১ কভার করা হয়েছে, বেসিক কনসেপ্ট, কেডিই (KDE) ডেস্কটপের কার্যকারিতা, নিরাপত্তা বৈশিষ্ট্য, এবং অন্যান্য কনফিগারেশন ফোকাস করা হয়েছে। ওপেনএসইউ ১১ - রিভিউ অ্যান্ড টিউটোরিয়াল (openSUSE 11 - Review & Tutorial) একটি অনেক বেশি থরো, সম্পূর্ণ আর্টিকেল, যেটি লাইভ সিডি অভিজ্ঞতা, বায়ারলেস, কম্পিজ (Compiz), মাল্টিমিডিয়া কোডেক, অতিরিক্ত রিপোজিটরি ইনস্টলেশন, গ্রাফিক্স কার্ড ড্রাইভার ইনস্টলেশন (এটিআই সহ), গেম ইনস্টলেশন, এবং আরও অনেক কিছু কভার করে।
আপনি এই দুটি টিউটোরিয়াল দেখতে পারেন। এগুলো আপনাকে ওপেনএসইউ (openSUSE) দিয়ে শুরু করতে সাহায্য করবে। একবার ওপেনএসইউ (openSUSE) ইনস্টল হলে, আপনি কিউই (Kiwi)-র দিকে যেতে পারেন।
কিউই (Kiwi) ইনস্টল করুন
প্রথমে, আপনাকে যাস্ট (YaST) এর মাধ্যমে কিউই (Kiwi) ইনস্টল করতে হবে। কিউই (Kiwi) প্যাকেজের একটি বিশাল তালিকা আছে। আমাদের সবগুলোই দরকার।
কিন্তু এটি শুধু পাজলের একটি অংশ। আমাদের এক আরো ইউটিলিটি ইনস্টল করতে হবে। সেটির নাম প্রোডাক্ট ক্রিয়েটর (product-creator)। এই ইউটিলিটিতে দুটি মডিউল রয়েছে, একটিকে ইমেজ ক্রিয়েটর (Image Creator) এবং অন্যটিকে প্রোডাক্ট ক্রিয়েটর (Product Creator) বলা হয়।
ইমেজ ক্রিয়েটর (Image Creator), পiyasi ফলের লোগো সহ, যেন তার নামই ইঙ্গিত দিচ্ছে—কিউই (Kiwi) ব্যবহার করে ইমেজ তৈরি করার জন্য একটি জিইউআই উইজার্ড (GUI wizard)। ঠিক আমাদের যা দরকার। প্রোডাক্ট ক্রিয়েটর (Product Creator) আপনাকে বিদ্যমান ইনস্টলেশনকে নতুন, ইনস্টলযোগ্য ডিস্ট্রিবিউশনে রূপান্তর করতে দেয়। আবার, আমাদের যা দরকার।
তবে, এই আর্টিকেল/টিউটোরিয়ালে আমরা শুধু ইমেজ ক্রিয়েটর (Image Creator)-এর সাথে কাজ করব। প্রোডাক্ট ক্রিয়েটর (Product Creator) কিভাবে ব্যবহার করবেন তা আলাদা একটি আর্টিকেলে দেখাব। আমরা আরেকটি শক্তিশালী বিল্ড ইউটিলিটি, সюз স্টুডিও (SUSE Studio)-র কথাও বলব। কিন্তু সেটি পরে। এখন আমাদের ইমেজ ক্রিয়েটর (Image Creator) দরকার। এটি যাস্ট (YaST) > মিসিলানিয়াস (Miscellaneous)-এ পাওয়া যাবে।
কিউই (Kiwi) ব্যবহার করুন
প্রথমবার ইমেজ ক্রিয়েটর (Image Creator) স্টার্ট করলে আপনি একটি খালি কনফিগারেশন মেনুতে যাবেন।
নতুন কনফিগারেশন তৈরি করতে Add-এ ক্লিক করুন।
ইমেজ প্রস্তুতি
এখন আপনাকে تصمیم নিতে হবে আপনি কী করতে চান। আপনি একটি বিদ্যমান কনফিগারেশন ব্যবহার করতে পারেন, কিন্তু আমাদের সেটি নেই, তাই আমরা প্রথম অপশনটি ব্যবহার করব: Create from beginning (শুরু থেকে তৈরি করুন)।
এরপর ইমেজ টাইপ (Image Type) বেছে নেওয়া। এটি খুবই গুরুত্বপূর্ণ, কারণ এটি চূড়ান্ত আউটপুট নির্ধারণ করে।
লাইভ আইএসও ইমেজ (Live ISO Image) সম্ভবত সবচেয়ে লচিলা অপশন, কারণ এটি আপনাকে ডিস্কটি কোথাও ইনস্টল করতে দেয়।
জেন ইমেজ (Xen Image) জেন ভার্চুয়ালাইজেশন সফ্টওয়্যারের সাথে ব্যবহারের জন্য, যা নভেল (Novell)-র দ্বারা অফিসিয়ালি সমর্থিত এবং ডিস্ট্রিবিউশনের সাথে আannya থাকে। আপনি ভার্চুয়ালাইজেশন মডিউলটি যাস্ট (YaST) > ভার্চুয়ালাইজেশন (Virtualization)-এর মাধ্যমে অ্যাক্সেস করতে পারেন।
ইউএসবি স্টিক ইমেজ (USB Stick Image) ইউএসবি ডিভাইসের সাথে ব্যবহারের জন্য।
ভার্চুয়াল ডিস্ক ইমেজ (Virtual Disk Image) বিভিন্ন ফরম্যাট অন্তর্ভুক্ত করে, যার মধ্যে কিউইমিইউ (QEMU)-র জন্য .raw এবং ভিএমওয়্যারের জন্য .vmdk ফাইল রয়েছে। এতে মনোযোগ দিন, কারণ আউটপুটে একাধিক ইমেজ থাকবে, শুধু একটা নয়, তাই স্পেস চাহিদা গুরুতর হবে।
একদিকের কথা, উপরের চিত্রের ব্যাকগ্রাউন্ড রঙ আমার সাইটের রঙের সাথে একই। এটি নিখুঁতভাবে সৌভাগ্য/প্রতিভার সংযোগ যে সিউজ (SUSE) এবং আমি একই রঙ ব্যবহার করছি। কল্পনা করুন।
স্পেস চাহিদা নিয়ে আউটপুট ডিরেক্টরি (Output directory) এসে। নিশ্চিত করুন যে ডিস্কে ইমেজগুলো ধারণ করার জন্য পর্যাপ্ত ফ্রি স্পেস আছে। যদি আপনি ২ জিবি ভার্চুয়াল ডিস্ক ইমেজ তৈরি করার পরিকল্পনা করেন, চূড়ান্ত ফলাফল কমপক্ষে ২৫০% বেশি হবে। নিশ্চিত করুন যে ফ্রি স্পেস শেষ নয়, বিশেষ করে যদি ডেস্টিনেশন ডিরেক্টরি রুট পার্টিশনের সাথে একই পার্টিশনে থাকে, কারণ আপনি মেশিনটি ক্র্যাশ করাতে পারেন।
ডিফল্ট ডেস্টিনেশন হলো /tmp।
প্যাকেজ রিপোজিটরি (Package Repository) অংশে সেই সব রিপোজিটরির তালিকা থাকে যেগুলো থেকে আপনি ইমেজ বিল্ড করার সময় প্যাকেজ ডাউনলোড করতে চান। যত বেশি রিপোজিটরি, তত বেশি সফ্টওয়্যার পাওয়ার সুযোগ। নিশ্চিত করুন রিপোজিটরিগুলো ব্রোকেন নয় এবং সেগুলো সঠিকভাবে সাইন করা আছে, যাতে পরবর্তীতে সমস্যা না হয়।
ভার্চুয়াল ডিস্ক ইমেজ
পরবর্তী ধাপ হলো নিজের ইমেজটি কনফিগার করা—এতে কী থাকবে এবং কী করবে। এটি পাঁচ ধাপের প্রক্রিয়া। প্রথম সাব-স্টেজ হলো ইমেজের ভার্সন এবং আকার বেছে নেওয়া। একবার আবার আপনার স্পেস রেস্ট্রিকশন অনুযায়ী পরিকল্পনা করুন।
তারপর আপনি যে প্যাকেজগুলো ইনক্লুড করতে চান সেগুলো বেছে নিন।
ডেসক্রিপশন (Description) যেন নামই ইঙ্গিত দিচ্ছে। এটি রিভিশন কন্ট্রোলের জন্য উপযোগী।
এরপর আসে বৈধ ব্যবহারকারীদের তালিকা। ডিফল্টভাবে আপনার থাকবে রুট (কোনো পাসওয়ার্ড ছাড়া) এবং একটি জেনেরিক লিনাক্স ইউজার। আপনি ইচ্ছামতো এডিট করতে পারেন, আরও ইউজার যোগ করতে পারেন বা বিদ্যমানগুলো মুছে ফেলতে পারেন।
চতুর্থ স্টেজ হলো ইমেজ বিল্ডিং স্ক্রিপ্টগুলো। পাওয়ার ইউজাররা এখানে যেকোনো কাস্টম নেটওয়ার্ক বা সার্ভিস কনফিগারেশন স্ক্রিপ্ট, ক্লিনআপ স্ক্রিপ্ট, ইত্যাদি যোগ করতে পারেন। আপনি যদি নিশ্চিত না হন কী করবেন, এই সেকশনটিকে ওই অবস্থায়ই রেখে দিন।
শেষ ধাপ হলো সিস্টেম কনফিগারেশন ধারণকারী ডিরেক্টরিগুলো বেছে নেওয়া। আবার, আপনি যদি নিশ্চিত না হন, ডিফল্ট অপশনগুলো রেখে দিন। সাধারণত এই সেকশন আপনাকে আপনার প্রয়োজন অনুযায়ী অতিরিক্ত ইমেজ-বিল্ডিং স্ক্রিপ্ট ইনক্লুড করতে দেয়, কিন্তু ইমেজ বিল্ড এবং রান করার জন্য এগুলো আবশ্যক নয়।
এই স্টেজ সম্পন্ন হলে Finish-এ ক্লিক করুন। আপনাকে আপনার পছন্দগুলো কনফার্ম করতে বলা হবে:
এবং প্রক্রিয়া শুরু হবে। আপনার ইমেজের আকার এবং কানেকশন স্পিড অনুযায়ী এটি কিছুটা সময় নিতে পারে। আমার কেসে, ইমেজটি প্রায় ৩ ঘন্টা পরে রেডি হলো।
ইমেজ টেস্ট করুন
এখন বড় মুহূর্ত, পুরো জিনিসটি টেস্ট করা। এইরকম কাজ কয়েক ঘন্টা চলে যাওয়ার পর আপনি চিন্তা করতে लगেন চূড়ান্ত ফলাফল আসলে কাজ করবে কিনা। চলুন জানি ফেলা যাক।
প্রথমে, কন্টেন্ট...
দ্রষ্টব্য, নিচের স্ক্রিনশটে ইমেজ ফাইলগুলোর পাথ /tmp নয়। কারণ আমি ইমেজগুলো অন্য একটি পার্টিশনে (/mnt) সরিয়ে ফেলেছিলাম, টেস্টিং-এ পারফরম্যান্স পাওয়ার জন্য, আমার ভার্চুয়ালাইজেশন প্রোডাক্টসের সাথে কাজ করার সময় আমি যেটি সুপারিশ করি।
ডিরেক্টরিতে বেশ কিছু ফাইল আছে, .raw এবং .vmdk ইমেজসহ, যেগুলো ২+ জিবি আকারের, এবং কিছু অতিরিক্ত ফাইল, যেমন ভিএমএক্স (VMX) বুট ভমলিনাজ (vmlinuz) এবং ইনিটআরডি (initrd) ফাইল। যেমন বললাম, চূড়ান্ত ফলাফল ইচ্ছিত আকারের চেয়ে অনেক বড়।
আমাদের আগ্রহ .vmdk ফাইলটিতে। কিন্তু আমরা .raw ফাইলটিও কিউইমিইউ (QEMU)-র সাথে ব্যবহার করতে পারি এবং চাইলে এএমআই (AMI) ফরম্যাটে রূপান্তর করেও আমাজন ইসিটু (EC2)-এর সাথে ব্যবহার করতে পারি।
ভার্চুয়াল মেশিন তৈরি করুন
প্রথম ধাপ হলো একটি ভার্চুয়াল মেশিন তৈরি করা, উদাহরণস্বরূপ, ভিএমওয়্যার সার্ভারে।
ভার্চুয়াল মেশিন স্টার্ট করুন
এবার চলুন, ভার্চুয়াল মেশিনটি রেডি:
এবং এটি বুট হচ্ছে:
এবং এটি চলছে:
চমৎকার! আমাদের কাজ বড় সফল।
অন্যান্য বিষয়
কিউই (Kiwi) অত্যন্ত লচিলা এবং এক্সএমএল (XML) কনফিগারেশন ফাইলসে কাজ করে। এর মানে আপনি আপনার ইমেজ তৈরির প্রক্রিয়া স্ক্রিপ্ট করতে পারেন, উইজার্ডের ऊपर নির্ভরশীল না হয়ে। কমান্ড-লাইন টুলসের ব্যবহার প্রধানত উন্নত ব্যবহারকারীদের জন্য, যাদের আরও গ্রানুলার কন্ট্রোল এবং তাদের ইমেজ বিল্ডিং-এর বিস্তৃত অটোমেশন প্রয়োজন।
অফিসিয়াল ডকুমেন্টেশন ও ব্যাখ্যা করে কিভাবে অন্যান্য রেঞ্জের ইমেজ তৈরি করবেন, যার মধ্যে পিক্সি (PXE) থিন ইনস্টল এবং ওইএম প্রিলোড সিস্টেম (OEM preload systems) রয়েছে, আমরা যা ইতিমধ্যে কভার করেছি তার পাশাপাশি। সবচেয়ে ভালো, উদাহরণগুলো অন্তর্ভুক্ত।
আমরা এই बारे আলাদা একটি টিউটোরিয়ালে আরও আলোচনা করব।
উপসংহার
এই আর্টিকেলে আমরা কিউই (Kiwi)-র ক্ষমতা—এবং বিল্ড সার্ভিসের ক্ষমতা—স্পর্শমাত্র করেছি। তবুও, কিউই (Kiwi) প্যাকেজের সহজতা, সৌন্দর্য, শক্তি, এবং লচিলাপন অস্বীকার করা যায় না।
এটি আপনাকে ব্যাপক রেঞ্জের কাস্টম ইমেজ তৈরি, টেস্ট এবং ডিপ্লয় করতে দেয়, വിവিধ পরিস্থিতিতে, কঠিন কমান্ড-লাইন কাজের ঝামেলা ছাড়া যা এই ধরনের কাজে সাধারণত জড়িত, যদিও কিউই (Kiwi) এক্সএমএল (XML) কনফিগারেশন ফাইলসের মাধ্যমে অটোমেটেড ব্যবহার সাপোর্ট করে।
কিউই (Kiwi) এই সব কাজ করে বান্ধব, সহজে বোঝা মেনু দিয়ে। আপনাকে সিস্টেম এক্সপার্ট হতে হবে না ইমেজ ক্রিয়েটর (Image Creator) কাজে লাগাতে এবং সব ধরনের ইমেজ বেক করতে, আপনি চান জেন (Xen), ভিএমওয়্যার সার্ভার (VMware Server)-এ ব্যবহার করতে বা দূরবর্তীভাবে আমাজন ক্লাউডে (Amazon Cloud) ডিপ্লয় করতে। অদ্ভুত পটেনশিয়ালটি শুধু চমৎকার।
আপনি যদি ওপেনএসইউ (openSUSE)-কে আপনার প্রাইমারি ডেস্কটপ ডিস্ট্রো হিসেবে ব্যবহার করার ইচ্ছা না করেন, আমি সুপারিশ করবো আবার চিন্তা করুন। আপনার প্রয়োজন যদি কখনো ভার্চুয়ালাইজেশনের Wirklich পেরিয়ে যায়, কিউই (Kiwi) সম্ভবত দ্রুত, বড় পরিমাণে ডিপ্লয়মেন্ট এবং ইমেজ টেস্টিং-এর জন্য সবচেয়ে সম্পূর্ণ ব্যবসা-মত প্ল্যাটফর্ম। সিক্যুয়েল টিউটোরিয়ালগুলোতে আমরা প্রোডাক্ট ক্রিয়েটর (Product Creator) এবং সюз স্টুডিও (SUSE Studio)-র কথা বলব। আপডেট থাকুন।
চিয়ার্স।