Откуда появляется имя "по умолчанию" при запуске брандмауэра?
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
Есть ли способ установить это?
Откуда появляется имя "по умолчанию" при запуске брандмауэра?
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
Есть ли способ установить это?
Я обнаружил, что несколько вариантов запутывают, поэтому я решил проверить их все, чтобы точно увидеть, что они делают.
Я использую VirtualBox 4.2.16-r86992 и Vagrant 1.3.3.
Я создал каталог под названием nametest
и запустил
vagrant init precise64 http://files.vagrantup.com/precise64.box
чтобы создать файл Vagrant по умолчанию. Затем я открыл графический интерфейс VirtualBox, чтобы я мог видеть, какие имена будут создаваться в ящиках.
Default Vagrantfile
Vagrant.configure('2') do |config|
config.vm.box = "precise64"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
end
Имя GUI VirtualBox: "nametest_default_1386347922"
Комментарии: Имя по умолчанию соответствует формату DIRECTORY_default_TIMESTAMP.
Определить 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
Имя GUI VirtualBox: "nametest_foohost_1386347922"
Комментарии. Если вы явно определяете виртуальную машину, используемое имя заменяет токен 'default'. Это выходы бродячие на консоли. Упрощение на основе входа zook
(commenter)
Установить имя поставщика
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 GUI Имя: "foohost"
Комментарии. Если вы установите атрибут name
в блоке конфигурации поставщика, это имя станет целым именем, отображаемым в графическом интерфейсе VirtualBox.
Комбинированный пример: Определить имя поставщика и указать имя поставщика
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 GUI Name: "barhost"
Комментарии. Если вы используете оба метода одновременно, выигрывает значение, назначенное name
в блоке конфигурации поставщика. Упрощение на основе входа zook
(commenter)
Установите hostname
(БОНУС)
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.hostname = "buzbar"
end
Комментарии: Это устанавливает имя хоста внутри виртуальной машины. Это будет вывод команды hostname
в виртуальной машине, а также это то, что видно в приглашении типа [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, поэтому пока не могу поговорить с лучшими практиками.)
Так я назначил имена отдельным виртуальным машинам. Измените 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 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)
Если вы хотите изменить что-либо еще вместо "по умолчанию", просто добавьте эти дополнительные строки в свой Vagrantfile:
config.vm.define "tendo" do |tendo|
end
Если "tendo" будет именем, которое будет отображаться вместо стандартного
Да, для провайдера Virtualbox сделайте что-то вроде этого:
Vagrant.configure("2") do |config|
# ...other options...
config.vm.provider "virtualbox" do |p|
p.name = "something-else"
end
end
Вы можете изменить имя брандмауэра по умолчанию, изменив значение 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