الفلاتر
طريقة البحث
  • الكلمات العادية تجد الأسماء والنصوص والأمثلة.
  • "كلمتان" تجد العبارة بالضبط.
  • --name أو -x تجد خيارًا.
  • #كلمة تبحث داخل الأوامر فقط.
  • @grep تجد الدروس والمعامل التي تستخدم grep.
  • الفلاتر: cat:network · in:labs · level:rhcsa · ch:8 · root:yes. ضع ! قبل كلمة لاستبعادها. OR بين الكلمات تعني إحداها.
  • ↑ ↓ للتنقل · Enter للفتح · Esc للإغلاق · / للبحث

vagrant

إنشاء أجهزة افتراضية محلية وحذفها من ملف واحد — معمل قابل للتكرار لتدريب Linux و Ansible و RHCSA.

المستوى
أداة DevOps
المجموعة
البنية التحتية ككود والسحابة
يحتاج root
لا
الحزمة
vagrant

ماذا يفعل

‏vagrant يقرأ ملف Vagrantfile يصف جهازًا افتراضيًا أو أكثر: الصندوق (box) الأساسي (صورة نظام)، والمعالج، والذاكرة، والشبكة، وطريقة إعدادها (التجهيز provisioning بسكربت صدفة أو Ansible). ‏vagrant up يبنيها، و vagrant destroy يرميها. نفس المعمل يعمل على كل حاسوب.

المزوّدون: VirtualBox و libvirt/KVM و Hyper-V و VMware.

طريقة الكتابة

vagrant COMMAND [VM] [OPTIONS]

الأجزاء الرئيسية

الأوامر

init BOX
إنشاء Vagrantfile لصندوق.
up [VM]
إنشاء الأجهزة وتشغيلها.
ssh [VM]
الدخول.
halt / reload / suspend / resume
إيقاف / إعادة تشغيل / إيقاف مؤقت / متابعة.
destroy [-f]
حذف الأجهزة.
provision
تشغيل التجهيز مرة أخرى.
status / global-status
حالة الأجهزة هنا / في كل مكان.
snapshot save|restore|list NAME
اللقطات.
box add|list|update|remove
إدارة الصناديق.
ssh-config
إعدادات SSH (لـ ssh أو Ansible).

الخيارات 4

الأكثر استخدامًا

الخيارات

--provider libvirt|virtualbox
اختيار المزوّد.
--provision / --no-provision
تشغيل / تخطي التجهيز مع up أو reload.
-f, --force
بدون سؤال (destroy).
--prune
تنظيف global-status.

أمثلة 10

$ مستخدم عادي# بصلاحية root (أو مع sudo)

  1. 1أول جهاز افتراضي

    vagrant init generic/rocky9
    vagrant up
    vagrant ssh
  2. 2خادمان لمعمل RHCSA

    cat Vagrantfile
    Vagrant.configure("2") do |config|
      config.vm.box = "generic/rocky9"
      %w[server1 server2].each_with_index do |name, i|
        config.vm.define name do |s|
          s.vm.hostname = "#{name}.example.com"
          s.vm.network "private_network", ip: "192.168.56.#{10 + i}"
          s.vm.provider "virtualbox" do |v| v.memory = 2048; v.cpus = 2 end
        end
      end
    end
    vagrant up
  3. 3التجهيز بـ Ansible

    cat Vagrantfile
    config.vm.provision "ansible" do |a|
      a.playbook = "site.yml"
    end
    vagrant provision
  4. 4لقطة قبل تمرين خطير

    vagrant snapshot save server1 clean
    vagrant snapshot restore server1 clean
  5. 5استخدام KVM بدل VirtualBox

    vagrant up --provider libvirt
  6. 6إعدادات SSH لـ ssh العادي وجرد Ansible

    vagrant ssh-config > ssh.cfg
    ssh -F ssh.cfg server1
  7. 7حالة كل الأجهزة على هذا الجهاز

    vagrant global-status --prune
  8. 8إعادة التشغيل وتطبيق تغييرات Vagrantfile

    vagrant reload --provision
  9. 9الإيقاف في الليل، والحذف عند الانتهاء

    vagrant halt
    vagrant destroy -f
  10. 10تحديث الصندوق الأساسي

    vagrant box update

انتبه

  • الصناديق العامة يصنعها آخرون. استخدم صناديق من ناشرين معروفين (generic/ و bento/ و rockylinux/).
  • المستخدم الافتراضي vagrant له المفتاح العام غير الآمن في أول إقلاع — لا تعرض جهاز معمل للإنترنت أبدًا.

الملفات

Vagrantfile
وصف الأجهزة (Ruby).
.vagrant/
الحالة المحلية. أضفه إلى .gitignore.
~/.vagrant.d/boxes/
الصناديق المنزّلة.

نصائح للحفظ

  • ‏Vagrant مع Ansible طريقة ممتازة لاختبار playbooks قبل أن تلمس خوادم حقيقية.

رموز الخروج

0تم.
1خطأ.

الدليل الكامل

هذه الصفحة تشرح الأمر بكلمات بسيطة. الدليل الأصلي فيه كل التفاصيل.

في الطرفية: man vagrant