حامد  فروردین
مدیر تیم توسعه | Development شرکت Tecnotree

آموزش ساخت ماشین مجازی لینوکسی با استفاده از multipass

در این مقاله قصد دارم که یکی از ابزارهای خوب و کاربردی برای ساخت ماشین مجازی بر روی پلتفرم های (سیستم عامل) مختلف به اسم multipass  را به شما معرفی کنم . شاید oracle virtual box  یا vmware  معروف ترین ابزار ها برای ساخت ماشن مجازی لینوکسی بر روی پلتفرم های مختلف باشند ولی برای کاربرد های خاص و به خصوص برای تست برخی ابزار و اپلیکیشن ها شما نیاز به یک ابزار سریع و سبک و صد البته رایگان برای داشتن یک یا چند ماشین مجازی لینوکسی بر روی سیستم عامل خودتون خواهید داشت .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

آموزش ساخت ماشین مجازی لینوکسی بر روی پلتفرم های مختلف با استفاده از multipass

پشتیبانی کامل از پردازنده های نسل جدید اپل M1 Pro !!!!!!!!!

WSL2 راهکار خوب و جذابی برای داشتن یک محیط لینوکسی بر روی ویندوز هست ولی   مشکل اصلی این هست که این ابزار محدود به استفاده در محیط ویندوز شده و برای پلتفرم های دیگه لازم به پیدا کردن راهکارها و استفاده از ابزارهای دیگه می باشد .

یک ابزار cross platform

اینجاست که یک ابزار cross platform مثل multipass  می تونه به کار ما بیاد !!

اما چطور ؟؟

یکی از خوبی های این ابزار این هست که توسط شرکت توسعه دهنده توزیع محبوب ubuntu ساخته و پشتیبانی میشه (canonical) .کار با این ابزار بسیار راحت است و فقط نیاز به نصب و راه اندازی باینری multipass  بر روی ویندوز ، لینوکس یا مک می باشد .راهنمای نصب multipass بر روی پلتفرم های مختلف :

نصب بر روی Ubuntu

sudo snap install multipass

نصب بر روی MacOs

brew install --cask multipass

نصب بر روی Windows 10/11

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

آموزش ساخت ماشین مجازی لینوکسی با استفاده از multipass

اتومیشن | Automation

یکی دیگه از بخش های جذاب کار ، بحث اتومیش هست که خیلی از کارهای تکراری رو میشه درون یک تمپلیت قرار داد و دیگه هر دفعه نیاز نیست که بریم و مثلا یوزر ، گروه ، 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


در نهایت شما میتونید از قابلیت های زیاد این ابزار مثل به اشتراک گذاری فایل بین هاست و ماشین مجازی و .. با توجه به دستورالعمل ها و دستورات مشخص شده توی داکیومنت های اصلی این ابزار  که توی لینک زیر قابل دسترسی هستن استفاده کنید(اینجا)

من از این ابزار برای نصب و تست ابزارها و تکنولوژی های مختلف مثل داکر ، کوبرنتیز و یا ترافورم به صورت لوکال استفاده کردم . اگر دوست داری با این ابزارها و تکنولوژی ها هم آشنا بشی توصیه می کنم یه سری به آموزش های من در حوزه کاری دوآپس بزنید .

  1. دوره آموزشی کامل و کاربردی داکر | docker 
  2. آموزش کامل و کاربردی کوبرنتیز | kubernetes 
  3. آموزش کاربردی ترافورم فارسی | terraform
  4. کارگاه رایگان آشنایی با داکر و کوبرنتیز 

موفق و پیروز باشید

همیشه شاگرد .. حامد فروردین


حامد  فروردین
حامد فروردین

مدیر تیم توسعه | Development شرکت Tecnotree

دارای مدرک کارشناسی مهندسی نرم افزار با بیش از 14 سال سابقه کار حرفه ای در حوزه IT به عنوان توسعه دهنده ، طراح پایگاه داده ، مدیر دوآپس ، مشاور و مدیر سیستم های نرم افزاری در شرکت های داخلی و بین المللی .. هم اکنون به عنوان مدیر تیم توسعه محصولات دیجیتال و دوآپس در شرکت tecnotree و پروژه ایرانسل مشغول به کار هستم .

نظرات