دليلك إلى استعمال برنامج Vagrant


وليد زيوش

Vagrant هو برنامج يُمكّنك من إنشاء وإعداد بيئات عمل خفيفة للتطوير عليها عن طريق تشغيل آلة وهمية.

Vagrant.png

لماذا أستعمل Vagrant

إذا كنت مطور ويب فسيساعدك البرنامج على محاكاة بيئة الخادوم عن طريق تنصيب إحدى نسخ لينكس للخواديم على جهازك. كما يساعدك أيضًا على تجربة تطبيقات الويب خاصتك بدون خوف من الخطأ أو الخوف على جهازك. وإذا كنت تعمل ضمن فريق عمل فإنه سيجعل من العمل أسهل بجعل بيئات التطوير واحدة بنفس البرمجيات والأنظمة.

البدء في استعمال Vagrant

قبل البدء يجب أن يكون لديك برنامج للآلات الوهمية مثبت ويفضل أن يكون Virtualbox. سيأتي ذكر كيفية ربطه مع برامج أخرى في آخر المقالة.

بعد تثبيت Virtualbox يمكنك تثبيت النسخة المناسبة من Vagrant من هنا

أنشأ مجلدًا جديدًا لبيئة العمل خاصتك. وادخل إليه من الطرفية عن طريق الأمر:

$ cd myfirst_project_dir

ثم اكتب الأمر التالي:

$ vagrant init ubuntu/trusty32

ستلاحظ أنه وفي أول مرة فقط بدأ بتحميل الملفات الخاصة بهذه الآلة وستلحظ أيضًا إنشاء ملف في هذا المجلد باسم Vagrantfile.

بعد الانتهاء من التحميل قم بتشغيل الآلة الوهمية عن طريق الأمر التالي مع التأكد أنك ما زلت في نفس المجلد :

$ vagrant up

انتظر قليلًا، بعد الانتهاء، مبارك لك تم تشغيل نظام أوبنتو 14.04 للخادم.

بدأ العمل

يمكنك الآن للتحكم في النظام كتابة الأمر التالي :

$ vargant ssh

وسيتم الدخول إلى جلسة الطرفية عن طريق بروتوكول SSH . 
يمكنك الآن كتابة أوامر لنظام أوبنتو كما تشاء. 
يمكنك لتثبيت حزمة LAMP

$ sudo apt-get install lamp-server^

يمكنك تثبيت أي برامج أو تطبيقات عن طريق سطر الأوامر يمكنك إذا أردت تثبيت Ngnix الاطلاع على هذا الدرس اتبع الإرشادات الخاصة بأوبنتو لأن الصندوق الذي استعملناه هو الخاص بأوبنتو (كما سيأتي لاحقًا في شرح الصناديق). 
يمكنك أيضًا تثبيت phpmyadmin كما يشرح الدرس لتالي.

المجلدات المشتركة

انتهيت من إعداد بيئة العمل تريد الآن البدأ في البرمجة ولكن هل ستضطر للدخول إلى جلسة الطرفية هذه كل مرة والعمل عن طريق محررات نصية كـ vim كي تستطيع العمل؟؟ 
الإجابة هي لا ففي الحقيقة المجلد الذي مساره داخل البيئة الوهمية /vagrant هو نفسه المجلد الذي أنشأت فيه الآلة في البداية أي المجلد الذي يتواجد بداخله ملفVagrantfile. 
ولتتأكد من كلامي هذا أنشأ في المجلد الحالي ملفًا نصيًا اسمه foo.txt ثم ادخل الآن إلى جلسة الطرفية الخاصة بالآلة الوهمية واكتب :

$ cd /vagrant
$ ls

ستفاجئ بوجود الملف الذي أنشأته سابقًا وبهذا يمكننا Vagrant من العمل على المحررات التي نفضلها من واجهتنا الرسومية ومشاركة كل ما نعمله مع الآلة الضيف. 
يمكنك أيضًالمشاركة مجلدات أخرى غير هذا المجلد كتابة الآتي داخلVagrantfile :

  config.vm.synced_folder "src/", "/srv/website"

حيث أن المسار الأول هو مسار المجلد الذي تريد مشاركته على آلتك المضيفة والمسار الثاني هو مسار المجلد الموجود في الآلة الوهمية.

تهيئة الشبكة

الآن بعد تثبيت apache مع حزمة LAMP تريد تصفح الموقع المتواجد على الخادوم على الآلة الضيف من على متصفحك من جهازك فكيف تفعل هذا. 
يمكنك فعل هذا بتعديل ملف Vagrantfile بحيث سيشبه الآتي :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/trusty32"
  config.vm.network :forwarded_port, guest: 80, host: 4567
end

اكتب الأمر التالي في حاسوبك (ليس بداخل الآلة الوهمية) داخل مجلد الآلة الوهمية:

$ vagrant reload

الآن يمكنك تصفح موقعك من على الرابط التالي http://127.0.0.1:4567 داخل متصفحك.

جعل المجلد الافتراضي لـapache في/vagrant

أنت الآن تريد إضافة ملفات البرمجة الخاصة بك وبدأت العمل عليها في المُجلّد/vagrant ولكن لا تزال هناك مشكلة فـapache يحدد المُجلّد /var/www/htmlكمُجلّد افتراضي توجد عليه الملفات التي سوف تمثل واجهة الموقع لذا علينا أن نجعل المُجلّد الافتراضي هو /vagrant/my_awesome_project والذي ستضع عليه ملفات الـPHP الخاصة بمشروعك. 
في البداية أنشئ في المُجلّد الذي تتواجد فيه الآلة الافتراضية مُجلّدًا فرعيًا وسمه my_awesome_project ثم اكتب الأمر التالي في جلسة الطرفية للآلة الضيف:

$ sudo nano /etc/apache2/sites-available/000-default.conf

أضف الآتي:

DocumentRoot /vagrant/my_awesome_project

احفظ التغييرات عن طريق الضغط على Ctrl + X ثم اكتب الأمر التالي:

$ sudo nano /etc/apache2/apache2.conf

أضف الآتي:

<Directory /vagrant>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

احفظه عن طريق الضغط على Ctrl + X ثم اكتب الأمر التالي لإعادة تشغيل الخادوم والعمل بالتغييرات :

sudo service apache2 restart

مبارك لك الآن يمكنك الدخول إلى المُجلّد الذي يحتوي الآلة الوهمية والدخول إلى المُجلّد المسمى my_awesome_project بداخله وبدأ العمل ومشاهدة التغييرات مباشرة على: 
http://127.0.0.1:4567

إغلاق الآلة

بعد الإنتهاء من العمل سيتوجب عليك إغلاق الآلة الوهمية ويمكن هذا بواحد من ثلاث أوامر داخل دليل الآلة:

$ vagrant suspend
$ vagrant halt
$ vagrant destroy
  1. الأمر الأول يقوم بحفظ حالة الآلة كما هي وعند الإقلاع مرة أخرى بالأمرvargant up يكون الإقلاع سريعًا لأنه فقط يقوم بإيقاظ الآلة.

  2. الأمر الثاني يعمل على إغلاق الآلة بالكامل وإغلاق كافة البرامج التي كانت تعمل على الآلة وأيضًا يتم الإقلاع مرة أخرى بالأمر vagrant up .

  3. الأمر الثالث يمحو الآلة مع كل شيء داخل المجلد الذي يحتويها.

الصناديق (Boxes)

يستعمل Vagrant الصناديق بدلًا من ترجمة ملفات الآلة الوهمية من الصفر مما يؤدي إلى ضياع الكثير. 
تعتبر الصناديق كالأنظمة والإعدادات معها المجهزة مسبقًا كي يتم استعمالها مباشرة. 
يعد الأمر الآتي الذي استعملناه في أول الدرس مثالًا على استخدام أحد الصناديق :

$ vagrant init ubuntu/trusty32

والذي من المفترض أن ينشئ آلة وهمية في المجلد الحالي اتخدامًا للصناديق فقد استعمل الصندوق المسمى بـubuntu/trusty32 
حالما يتم تنزيل الصندوق يمكنك استعماله في أي مكان وفي أي آلة تنشؤها ويمكنك إضافة أي صندوق جديد عن طريق الأمر التالي:

$ vagrant box add box_name

وفائدة هذه الصناديق هي استعمال إعدادات وأنظمة جاهزة ومختلفة فمثلًا إذا أردت استعمال CentOS بدلًا من أوبونتو يمكنك استبدال اسم الصندوق بـdanmikita/centos . 
يمكنك البحث عن الصناديق المتوفرة وأسمائها من خلال الرابط التالي: 
https://atlas.hashicorp.com/boxes/search

التّجهيز (Provisioning)

يمكنك التّجهز (Provisioning) من تنفيذ أوامر معينة على الآلة الوهمية بدون الدخول إليها ويمكن ذلك عن طريق التعديل في ملف Vagrantfile وذلك يمكنك من استعمال نفس البرامج والإعدادات على جميع الآلات. 
لتتمكن من استعمال التزويد عليك إضافة الأمر التالي إلى ملف Vagrantfile لـ:

  config.vm.provision :shell, path: "bootstrap.sh"

هذا الأمر يجعل من ملف bootstrap.sh ملفًا يعمل عند تشغيل الآلة. هناك مجموعة كبيرة أخرى من الأوامر يمكنك الاطلاع عليها من التوثيق الرسمي للبرنامج. 
يمكنك تفعيل التزويد في الآلة التي تعمل الآن عن طريق الأمر التالي:

vagrant reload --provision

 

تغيير Virtualbox

يمكنك بكل بساطة استعمال أي برنامج محاكاة مدعوم كـبرنامج VMware على سبيل المثال عن طريق الأمر التالي مع أمر vagrant up:

$ vagrant up --provider=vmware_fusion

مشاركة الآلة

يمكنك مشاركة الآلة خاصتك مع فريق العمل وجعلهم يتمكنون من مراقبتها أو التحكم بها من أي مكان. 

هناك ثلاثة طرق للمشاركة: 

مشاركة HTTP

ويشارك هذا الآلة عبر منفذ HTTP ويمكن عمل هذا عبر تنفيذ الأمر vagrant share وبعد ذلك وبعد انتهاء الأمر سيظهر في آخره رابطًا يمكنك مشاركته مع فريق عملك. 

Quote

 ملحوظة : هذا الرابط يمكن لأي شخص تصفحه لذا كن حذرًا لمن تعطي الرابط.  

مشاركة SSH

يمكن هذا عن طريق كتابة الأمر: 
 

vagrant share --ssh 

سيطلب منك هذا الأمر كتابة كلمة السر التي سيتم التأكد بها من المتصل. بعد الانتهاء من الأمر يمكنك التوصل إلى الآلة من حاسوب آخر عن طريق الأمر: 
 

vagrant connect --ssh NAME 

حيث NAME اسم الآلة الذي ظهر عند نهاية أمر vagrant share --ssh 
 

Quote

 ملحوظة تتطلب هذه الطريقة أن يكون vagrant مثبتًا على الجهاز الآخر  

مشاركة عامة

وهي تشارك جميع المنافذ الممكنة ويكون ذلك عن طريق الأمرvagrant share ثم كتابة الأمر vagrant connect NAME على الجهاز المتحكم حيث NAME هو اسم الآلة الذي يظهر في نهاية تنفيذ الأمر vagrant share . 

Quote

 ملحوظة: هذه الطريقة ليست آمنة تمامًا.

 

الخاتمة

يمكنك إنشاء أي عدد من الآلات في مُجلّدات مختلفة والعمل عليها جميعًا أو على واحدة منها واستعمال أي صناديق تريد معها وإضافة إعدادات معينة للتزويد ونشرها مع فريق العمل ليتسنى لهم ضبط آلتهم كما هو عندك ومشاركة آلتك عن بعد كي يتحكم جميع فريق العمل في آلة واحدة .



1 شخص أعجب بهذا


تفاعل الأعضاء




يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن