در این مقاله قصد دارم که یکی از ابزارهای خوب و کاربردی برای ساخت ماشین مجازی بر روی پلتفرم های (سیستم عامل) مختلف به اسم multipass را به شما معرفی کنم . شاید oracle virtual box یا vmware معروف ترین ابزار ها برای ساخت ماشن مجازی لینوکسی بر روی پلتفرم های مختلف باشند ولی برای کاربرد های خاص و به خصوص برای تست برخی ابزار و اپلیکیشن ها شما نیاز به یک ابزار سریع و سبک و صد البته رایگان برای داشتن یک یا چند ماشین مجازی لینوکسی بر روی سیستم عامل خودتون خواهید داشت .
پشتیبانی کامل از پردازنده های نسل جدید اپل M1 Pro !!!!!!!!!
WSL2 راهکار خوب و جذابی برای داشتن یک محیط لینوکسی بر روی ویندوز هست ولی مشکل اصلی این هست که این ابزار محدود به استفاده در محیط ویندوز شده و برای پلتفرم های دیگه لازم به پیدا کردن راهکارها و استفاده از ابزارهای دیگه می باشد .
اینجاست که یک ابزار cross platform مثل multipass می تونه به کار ما بیاد !!
اما چطور ؟؟
یکی از خوبی های این ابزار این هست که توسط شرکت توسعه دهنده توزیع محبوب ubuntu ساخته و پشتیبانی میشه (canonical) .کار با این ابزار بسیار راحت است و فقط نیاز به نصب و راه اندازی باینری multipass بر روی ویندوز ، لینوکس یا مک می باشد .راهنمای نصب multipass بر روی پلتفرم های مختلف :
sudo snap install multipass
brew install --cask multipass
choco install multipass
اگر قبلا از choco استفاده نکردید می تونید به این لینک مراجعه کنید اینجا
حالا بریم سراغ کار بار multipass که بر روی مک نصب شده (M1 Pro) برای مشاهده لیست ایمیج های از پیش آماده شده می تونید از دستور زیر استفاده کنید :
multipass find
برای نصب و راه اندازی یک سرور ابونتو فقط کافی است دستور زیر را اجرا کنید .. نه نیازی به دانلود ایمیج به صورت جداگانه هست و نه ابزار و برنامه اضافی دیگه !!!!
multipass launch ubuntu
این دستور میاد و سرور مجازی شما رو با تنظیمات پیش فرض میسازه و بوت می کنه و اگر بخواهید تنظیمات پیش فرض و تغییر بدید میتونید پارامتر های بیشتری به دستور بالایی بدید ، مثل مثال زیر :
multipass launch -c 2 -m 2G -d 20G -n my-test-vm 21.10
برای مشاهده لیست سرورهایی که ساختید میتونید از دستور زیر استفاده کنید :
multipass list
برای stop, start و یا از بین بردن سرورهای مجازی هم دستورات زیر رو باید استفاده کنید :
multipass start my-test-vm
multipass stop my-test-vm
multipass delete my-test-vm
multipass purge
و قسمت جذاب داستان وصل شدن به سروری هست که چند دقیقه پیش با کمک multipass ساختید :
multipass shell my-test-vm
یکی دیگه از بخش های جذاب کار ، بحث اتومیش هست که خیلی از کارهای تکراری رو میشه درون یک تمپلیت قرار داد و دیگه هر دفعه نیاز نیست که بریم و مثلا یوزر ، گروه ، ssh key ... رو جداگانه بسازیم .. همه این تنظیمات در اصطلاح می تونه موقع راه اندازی سرور inject بشه .. فرمت تمپلیت ما به این صورت هست :
users:
- default
- name: andrewzhu
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh_authorized_keys:
- ssh-rsa <rsa keys in one line>
package_update: true
package_upgrade: true
packages:
- nodejs
- python3
این فایل رو میشه به طور مثال به اسم cloud_init.yaml ذخیره و بعد به این شکل به دستورات قبلی اضافه کرد :
multipass launch -c 2 -m 2G -d 20G -n az-test-vm2 --cloud-init path/to/the/cloud_init.yaml
در نهایت شما میتونید از قابلیت های زیاد این ابزار مثل به اشتراک گذاری فایل بین هاست و ماشین مجازی و .. با توجه به دستورالعمل ها و دستورات مشخص شده توی داکیومنت های اصلی این ابزار که توی لینک زیر قابل دسترسی هستن استفاده کنید(اینجا)
من از این ابزار برای نصب و تست ابزارها و تکنولوژی های مختلف مثل داکر ، کوبرنتیز و یا ترافورم به صورت لوکال استفاده کردم . اگر دوست داری با این ابزارها و تکنولوژی ها هم آشنا بشی توصیه می کنم یه سری به آموزش های من در حوزه کاری دوآپس بزنید .
موفق و پیروز باشید
همیشه شاگرد .. حامد فروردین
مهندس دوآپس
دارای مدرک کارشناسی مهندسی نرم افزار با بیش از 14 سال سابقه کار حرفه ای در حوزه IT به عنوان توسعه دهنده ، طراح پایگاه داده ، مدیر دوآپس ، مشاور و مدیر سیستم های نرم افزاری در شرکت های داخلی و بین المللی .. هم اکنون به عنوان نیروی دوآپس در ژاپن مشغول به کار هستم
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود