Jak zmienić "domyślną" nazwę maszyny?
Skąd pochodzi nazwa 'default' podczas uruchamiania skrzyni vagrant?
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
Czy jest jakiś sposób, aby to ustawić? 7 answers
Okazało się, że wiele opcji jest mylących, więc postanowiłem przetestować je wszystkie, aby zobaczyć, co dokładnie robią.
Używam VirtualBox 4.2.16-r86992 i Vagrant 1.3.3.Utworzyłem katalog o nazwie nametest
i uruchomiłem
vagrant init precise64 http://files.vagrantup.com/precise64.box
Aby wygenerować domyślny plik Vagrantfile. Następnie otworzyłem interfejs graficzny VirtualBox, aby zobaczyć, jakie nazwy pudełka, które tworzę, pojawią się jako.
-
Default Vagrantfile
Vagrant.configure('2') do |config| config.vm.box = "precise64" config.vm.box_url = "http://files.vagrantup.com/precise64.box" end
Nazwa interfejsu graficznego VirtualBox: "nametest_default_1386347922"
Komentarze: nazwa domyślna to format DIRECTORY_default_TIMESTAMP.
-
Define 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 GUI Nazwa: "nametest_foohost_1386347922"
Komentarze: jeśli jawnie zdefiniujesz maszynę wirtualną, użyta nazwa zastępuje token "domyślny". To jest nazwavagrant wyjścia na konsoli. Uproszczenie na podstawie
zook
'S (commenter) input -
Zestaw Nazwa Dostawcy
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 Nazwa: "foohost"
Komentarze: Jeśli ustawisz atrybut
name
w bloku konfiguracji dostawcy, nazwa ta stanie się całą nazwą wyświetlaną w interfejsie graficznym VirtualBox.przykład łączony: Define VM - and-Set Provider Name
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 Nazwa: "barhost"
Komentarze: Jeśli używasz obu metod jednocześnie, wartość przypisany do
name
w bloku konfiguracji dostawcy wygrywa. Uproszczenie na podstawiezook
'S (commenter) input -
Set
hostname
(BONUS)Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.hostname = "buzbar" end
Komentarze: ustawia nazwę hosta wewnątrz maszyny wirtualnej. Będzie to wynik polecenia
hostname
W maszynie wirtualnej, a także to, co jest widoczne w wierszu zachęty, jakvagrant@<hostname>
, tutaj będzie wyglądaćvagrant@buzbar
Kod Końcowy
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
No i proszę. Teraz znasz 3 różne opcje, które możesz set i efekty jakie mają. To chyba kwestia preferencji? (Jestem nowy w Vagrant, więc nie mogę jeszcze rozmawiać z najlepszymi praktykami.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-14 12:11:50
W ten sposób przypisałem nazwy poszczególnym maszynom wirtualnym. Zmień YOURNAMEHERE
na żądaną nazwę.
Zawartość 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
Wyjście terminala:
$ vagrant status
Current machine states:
YOURNAMEHERE not created (virtualbox)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-25 17:06:11
Jeśli chcesz zmienić cokolwiek innego zamiast 'default', dodaj te dodatkowe linie do swojego pliku Vagrantfile:
Zmień nazwę baseboxa, gdy używasz "Vagrant status"
config.vm.define "tendo" do |tendo|
end
Gdzie "tendo" będzie nazwą, która pojawi się zamiast domyślnej
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-12 07:38:00
Określam nazwę przez definiując wewnątrz VagrantFile, a także określam nazwę hosta, więc cieszę się, że widzę nazwę mojego projektu podczas wykonywania poleceń Linuksa niezależnie od systemu operacyjnego mojego urządzenia. ✌️
config.vm.define "abc"
config.vm.hostname = "abc"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-30 11:13:18
Tak, dla dostawcy Virtualbox zrób coś takiego:
Vagrant.configure("2") do |config|
# ...other options...
config.vm.provider "virtualbox" do |p|
p.name = "something-else"
end
end
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-24 22:45:20
Możesz zmienić domyślną nazwę maszyny Vagrant zmieniając wartość config.vm.define
.
Oto prosty plik Vagrantfile, który używa getopts i pozwala dynamicznie zmieniać nazwę:
# -*- 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
Aby użyć innej nazwy, możesz uruchomić na przykład:
vagrant --vm-name=my_name up --no-provision
Uwaga: przed poleceniem up
Należy podać parametr --vm-name
.
Lub:
VM_NAME=my_name vagrant up --no-provision
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-07 08:59:02
W przypadku, gdy jest wiele osób używających Twojego pliku vagrant - możesz chcieć ustawić dynamicznie nazwę. Poniżej znajduje się przykład jak to zrobić używając nazwy użytkownika z komputera HOST jako nazwy pola i nazwy hosta:
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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-04 07:10:10