it-swarm.asia

كيفية تغيير اسم الجهاز "الافتراضي" المتشرد؟

من أين يأتي الاسم "الافتراضي" عند تشغيل صندوق متشرد؟

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...

هل هناك طريقة لضبط هذا؟

213
Kyle Kelley

لقد وجدت الخيارات المتعددة مربكة ، لذلك قررت اختبارها جميعًا لمعرفة ما الذي تفعله بالضبط.

أنا أستخدم VirtualBox 4.2.16-r86992 و Vagrant 1.3.3.

قمت بإنشاء دليل يسمى nametest وركضت

vagrant init precise64 http://files.vagrantup.com/precise64.box

لإنشاء Vagrantfile الافتراضي. ثم فتحت واجهة المستخدم الرسومية لـ VirtualBox حتى أتمكن من رؤية الأسماء التي ستظهرها الصناديق التي أقوم بإنشائها.

  1. الافتراضي متشرد

    Vagrant.configure('2') do |config|
        config.vm.box = "precise64"
        config.vm.box_url = "http://files.vagrantup.com/precise64.box"
    end
    

    اسم واجهة المستخدم الرسومية لـ VirtualBox: "nametest_default_1386347922"

    تعليقات: الاسم الافتراضي للتنسيق DIRECTORY_default_TIMESTAMP.

  2. تحديد VM

    Vagrant.configure('2') do |config|
        config.vm.box = "precise64"
        config.vm.box_url = "http://files.vagrantup.com/precise64.box"
        config.vm.define "foohost"
    end
    

    اسم واجهة المستخدم الرسومية لـ VirtualBox: "nametest_foohost_1386347922"

    تعليقات: إذا قمت بتعريف VM صراحة ، فإن الاسم المستخدم يستبدل الرمز المميز "الافتراضي". هذا هو الاسم المتشرد المخرجات على وحدة التحكم. التبسيط بناءً على مدخلات (المعلق) zook

  3. تعيين اسم المزود

    Vagrant.configure('2') do |config|
        config.vm.box = "precise64"
        config.vm.box_url = "http://files.vagrantup.com/precise64.box"
        config.vm.provider :virtualbox do |vb|
            vb.name = "foohost"
        end
    end
    

    اسم واجهة المستخدم الرسومية لـ VirtualBox: "foohost"

    تعليقات: إذا قمت بتعيين السمة name في كتلة تكوين الموفر ، فسيصبح هذا الاسم هو الاسم بالكامل المعروض في VirtualBox GUI.

    مثال مدمج: تعريف VM -و- تعيين اسم موفر

    Vagrant.configure('2') do |config|
        config.vm.box = "precise64"
        config.vm.box_url = "http://files.vagrantup.com/precise64.box"
        config.vm.define "foohost"
        config.vm.provider :virtualbox do |vb|
            vb.name = "barhost"
        end
    end
    

    اسم واجهة المستخدم الرسومية لـ VirtualBox: "barhost"

    تعليقات: إذا استخدمت كلا الطريقتين في نفس الوقت ، فإن القيمة المعينة لـ name في كتلة تكوين الموفر تفوز. التبسيط بناءً على مدخلات (المعلق) zook

  4. ضبط hostname (BONUS)

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      config.vm.hostname = "buzbar"
    end
    

    تعليقات: هذا يعين اسم المضيف داخل VM. سيكون هذا ناتج أمر hostname في VM وأيضًا ما يظهر في الموجه مثل [email protected]<hostname> ، هنا سيبدو [email protected]

الرمز النهائي

    Vagrant.configure('2') do |config|
        config.vm.box = "precise64"
        config.vm.box_url = "http://files.vagrantup.com/precise64.box"
        config.vm.hostname = "buzbar"
        config.vm.define "foohost"
        config.vm.provider :virtualbox do |vb|
            vb.name = "barhost"
        end
    end

لذلك هناك هو عليه. أنت تعرف الآن 3 خيارات مختلفة يمكنك تعيينها والتأثيرات التي لديهم. أعتقد أنها مسألة تفضيل في هذه المرحلة؟ (أنا جديد على Vagrant ، لذلك لا أستطيع التحدث إلى أفضل الممارسات حتى الآن.)

320
odigity

هذه هي الطريقة التي عيّنت بها أسماء لأجهزة VMs فردية. تغيير YOURNAMEHERE إلى اسمك المطلوب.

محتويات Vagrantfile:

Vagrant.configure("2") do |config|

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "precise32"

  # The url from where the 'config.vm.box' box will be fetched if it
  # doesn't already exist on the user's system.
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"

  config.vm.define :YOURNAMEHERE do |t|
  end

end

الإخراج النهائي:

$ vagrant status
Current machine states:

YOURNAMEHERE             not created (virtualbox)
57
nikhil

إذا كنت تريد تغيير أي شيء آخر بدلاً من "افتراضي" ، فقم فقط بإضافة هذه الأسطر الإضافية إلى Vagrantfile:

تغيير اسم القاعدة الأساسية ، عند استخدام "حالة التشرد"

 config.vm.define "tendo" do |tendo|
  end

حيث سيكون "وتر" هو الاسم الذي سيظهر بدلاً من الافتراضي

16
Arbab Nazar

أحدد الاسم بـ تعريف داخل VagrantFile وأيضًا تحديد اسم المضيف لذلك أستمتع برؤية اسم مشروعي أثناء تنفيذ أوامر Linux بشكل مستقل عن نظام التشغيل بجهازي. ✌️

config.vm.define "abc"
config.vm.hostname = "abc"
6
muratgozel

نعم ، لمزود Virtualbox ، قم بعمل مثل هذا:

Vagrant.configure("2") do |config|
    # ...other options...
    config.vm.provider "virtualbox" do |p|
        p.name = "something-else"
    end
end
5
cmur2

يمكنك تغيير اسم الجهاز الافتراضي المهبّر عن طريق تغيير قيمة config.vm.define.

هنا هو Vagrantfile البسيط الذي يستخدم getopts ويسمح لك بتغيير الاسم بشكل حيوي:

# -*- mode: Ruby -*-
require 'getoptlong'

opts = GetoptLong.new(
  [ '--vm-name',        GetoptLong::OPTIONAL_ARGUMENT ],
)
vm_name        = ENV['VM_NAME'] || 'default'

begin
  opts.each do |opt, arg|
    case opt
      when '--vm-name'
        vm_name = arg
    end
  end
  rescue
end

Vagrant.configure(2) do |config|
  config.vm.define vm_name
  config.vm.provider "virtualbox" do |vbox, override|
    override.vm.box = "ubuntu/wily64"
    # ...
  end
  # ...
end

لاستخدام اسم مختلف ، يمكنك تشغيل على سبيل المثال:

vagrant --vm-name=my_name up --no-provision

ملاحظة: يجب تحديد المعلمة --vm-name قبل أمر up.

أو:

VM_NAME=my_name vagrant up --no-provision
3
kenorb

في حالة وجود العديد من الأشخاص الذين يستخدمون ملف المتشرد - قد ترغب في تعيين الاسم بشكل حيوي . فيما يلي مثال كيفية القيام بذلك باستخدام اسم المستخدم من جهاز المضيف كاسم للمربع واسم المضيف:

require 'etc'
vagrant_name = "yourProjectName-" + Etc.getlogin
Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"
  config.vm.hostname = vagrant_name
  config.vm.provider "virtualbox" do |v|
    v.name = vagrant_name
  end
end
0
Anton Sluchak