ایجاد و مدیریت ماشین های مجازی در گذشته فرآیندی خسته کننده و زمان بر بود. تکرار VM در سرورهای مختلف نیز می تواند چالش برانگیز باشد، و اگر مجبور باشید چندین VM را تکرار کنید، سخت تر می شود.

اما سپس Vagrant آمد، یک ابزار خط فرمان یا پوسته که معمولاً با هایپروایزرهای نوع 2 کار می کند. شما از آن برای ایجاد و مدیریت ماشین های مجازی استفاده می کنید. این ابزار قدرتمندی است که می تواند به ساده سازی راه اندازی و مدیریت محیط توسعه شما کمک کند.

اگر در یک تیم یا با چند نفر کار می کنید، Vagrant می تواند واقعا مفید باشد. این به این دلیل است که با اطمینان از اینکه همه از یک محیط استفاده می‌کنند و از مشکلات سازگاری جلوگیری می‌کند، ثبات در محیط توسعه شما را تضمین می‌کند.

این آموزش شما را در فرآیند راه اندازی یک ماشین مجازی لینوکس Ubuntu با Vagrant و پیکربندی یک وب سرور در داخل آن راهنمایی می کند.

پیش نیازهای این آموزش عبارتند از:

  • رایانه ای با حداقل 8 گیگابایت رم
  • دانش اولیه سیستم عامل لینوکس

ابزار مورد نیاز و نصب

  • Oracle VirtualBox: به وب سایت Oracle VirtualBox بروید، نسخه VirtualBox را که با سیستم عامل شما سازگار است پیدا کنید و دستورالعمل ها را برای دانلود و نصب آن دنبال کنید. Virtual Box محیط مجازی را فراهم می کند، در حالی که Vagrant آن را راه اندازی و مدیریت می کند.
  • ولگرد: از وب سایت Vagrant دیدن کنید و دستورالعمل ها را برای دانلود و نصب باینری مناسب برای سیستم عامل خود دنبال کنید. در این آموزش، ما از باینری منبع باز Vagrant استفاده خواهیم کرد.

برای بررسی موفقیت آمیز بودن نصب، ابزار خط فرمان مورد نظر خود را راه اندازی کنید و دستور زیر را وارد کنید تا شماره نسخه نصب شده را خروجی بگیرید:

$ vagrant --version

چگونه با Vagrant یک محیط توسعه ایجاد کنیم

برای ایجاد یک پروژه Vagrant، با ایجاد یک فهرست پروژه جدید در مکان دلخواه خود برای پیکربندی Vagrant و فایل های مرتبط شروع کنید.

$ mkdir vagrant-project && cd vagrant-project

در این فهرست، یک Vagrantfile جدید ایجاد کنید. Vagrant از پیکربندی موجود در Vagrantfile برای ساخت VM استفاده می کند. به طور پیش‌فرض، Vagrant دایرکتوری پروژه را که در آن Vagrantfile به /vagrant مقداردهی اولیه می‌شود، همگام‌سازی می‌کند. این نیاز به نگرانی در مورد حجم برای داده های ماندگار را از بین می برد.

پیشنهاد می‌کنیم بخوانید:  ایجاد دایرکتوری و دایرکتوری های والد آن در پایتون

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

جعبه Vagrant نام کاربر یا سازمانی که آن را ایجاد کرده و نام جعبه را دارد user/boxname. برای مقداردهی اولیه فایل پیکربندی Vagrant با جعبه اوبونتو، دستور را اجرا کنید:

$ vagrant init ubuntu/trusty64

این یک Vagrantfile با جعبه Ubuntu/trusty64 در دایرکتوری فعلی ایجاد می کند. Vagrantfile که به زبان Ruby نوشته شده است، حاوی نوع ماشین مجازی مورد استفاده و گزینه های مختلف دیگری مانند شبکه، ارسال پورت، ظرفیت دیسک و غیره است تا به پیکربندی محیط توسعه کمک کند.

می توانید اضافه کنید --minimal برای ایجاد یک Vagrantfile بدون هیچ گونه تنظیمات اضافی، دستور مقداردهی اولیه Vagrantfile را علامت بزنید.

Vagrantfile را با هر ویرایشگر دلخواه خود باز کنید. من از ویرایشگر Vim در این آموزش استفاده خواهم کرد.

 $ vim Vagrantfile

با حذف نظرات اطلاعاتی و برخی تنظیمات پیشرفته، فایل به این صورت باقی می‌ماند:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"
    config.vm.network "forwarded_port", guest: 8000, host: 8000
    config.vm.provider "virtualbox" do |vb| vb.memory = "1024"
 end
  config.vm.provision :shell, path: "simple-node-project.sh", privileged: false
end

را simple-node-project.sh یک اسکریپت bash است که Node.js و Git را نصب می کند، پروژه ای را شبیه سازی می کند که یک وب سرور ساده Node.js ایجاد می کند و سرور را راه اندازی می کند.

#!/bin/bash

 sudo apt-get update -y

 ## Git ##
 echo '###Installing Git..'
 sudo apt-get install git -y

 git clone https://github.com/Aijeyomah/simple-node-app.git

# Installing latest Node and npm version
 sudo apt-get install -y curl software-properties-common

# Add Node.js PPA
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

# Install Node.js and npm
sudo apt-get install -y nodejs

# Verify installation
node -v
npm -v

echo "Node.js has been installed successfully."

# navigate to app directory and start app
cd simple-node-app
node index.js &

این پیکربندی Vagrant موارد زیر را تنظیم می کند:

  • ubuntu/trusty64 به عنوان تصویر پایه جعبه مجازی مشخص شده است
  • پورت 8000 ماشین مجازی را به پورت 8000 ماشین میزبان هدایت می کند.
  • 1 گیگابایت حافظه را به VM اختصاص می دهد
  • دویدن simple-node-project برای تهیه VM
  • برای اینکه تامین کننده پوسته اسکریپت را به عنوان یک کاربر غیر ریشه در یک پوسته لاگین اجرا کند، privileged تنظیم شده است false

ذخیره کنید Vagrantfile و با اجرای دستور زیر ماشین مجازی را راه اندازی کنید:

$ vagrant up

اولین بار که این دستور اجرا می شود، آخرین نسخه کادر مشخص شده را دانلود می کند و VM را پیکربندی و راه اندازی می کند. این فرآیند ممکن است کمی طول بکشد، اما زمانی که جعبه اوبونتو در ماشین محلی وجود داشته باشد، VM بلافاصله شروع به کار می کند.

پیشنهاد می‌کنیم بخوانید:  آرگومان های خط فرمان در پایتون

هنگامی که VM در حال اجرا است، می توانید با باز کردن یک مرورگر وب و پیمایش به صفحه وب دسترسی پیدا کنید http://localhost:8000. شما باید ببینید Hello World صفحه پیام اگر همه چیز به درستی تنظیم شده باشد.

چگونه ولگرد را مدیریت کنیم

می توانید از Vagrant برای مدیریت ماشین مجازی در حال اجرا استفاده کنید. در اینجا چند دستور مفید Vagrant آمده است:

vagrant up: ماشین مجازی را راه اندازی می کند و آن را مطابق تنظیمات موجود در Vagrantfile ارائه می کند. این دستور به سادگی به ماشین مجازی متصل می شود اگر قبلاً در حال اجرا باشد.

vagrant halt: ماشین مجازی را با ارائه یک سیگنال خاموش شدن به سیستم عامل مهمان متوقف می کند. این دستور شبیه به خاموش کردن یک کامپیوتر واقعی است.

vagrant reload: ماشین مجازی را مجددا راه اندازی می کند و بسته به هرگونه تغییر در Vagrantfile آن را مجدداً ارائه می کند.

vagrant ssh: از طریق SSH به ماشین مجازی متصل می شود. این دستور برای دسترسی به رابط خط فرمان ماشین مجازی مفید است.

vagrant status: وضعیت فعلی ماشین مجازی، از جمله در حال اجرا، توقف یا تعلیق بودن آن را نشان می دهد.

vagrant destroy: ماشین مجازی و تمام منابع مرتبط را حذف می کند. این دستور برای پاکسازی محیط توسعه شما مفید است.

نتیجه

در این مقاله، ما یاد گرفتیم که چگونه از Vagrant برای راه اندازی یک محیط توسعه قابل تکرار و سازگار استفاده کنیم.

استفاده از Vagrant می تواند به شما در راه اندازی یک محیط توسعه مجازی کمک کند که از نزدیک محیط تولید شما را تقلید کند. این به شما امکان می دهد کد خود را در یک محیط ثابت و ایزوله آزمایش و توسعه دهید.