启动 vagrant box 时,“default”这个名字是从哪里来的?
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider...
有没有办法设置这个?
我发现多个选项令人困惑,所以我决定测试所有选项以了解它们的确切作用。
我正在使用 VirtualBox 4.2.16-r86992 和 Vagrant 1.3.3。
我创建了一个名为nametest并运行的目录
nametest
vagrant init precise64 http://files.vagrantup.com/precise64.box
生成一个默认的 Vagrantfile。然后我打开了 VirtualBox GUI,这样我就可以看到我创建的盒子的名称。
Vagrant.configure('2') do |config| config.vm.box = "precise64" config.vm.box_url = "http://files.vagrantup.com/precise64.box"
end
VirtualBox GUI 名称: “nametest_default_1386347922”
注释: 名称默认为 DIRECTORY_default_TIMESTAMP 格式。
Vagrant.configure('2') do |config| config.vm.box = "precise64" config.vm.box_url = "http://files.vagrantup.com/precise64.box" config.vm.define "foohost"
VirtualBox GUI 名称: “nametest_foohost_1386347922”
注释: 如果您明确定义 VM,则使用的名称将替换标记“默认”。这是控制台上的名称 vagrant输出。 基于zook的(评论者)输入进行简化
zook
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
VirtualBox GUI 名称: “foohost”
注释: 如果您name在提供程序配置块中设置属性,该名称将成为 VirtualBox GUI 中显示的整个名称。
name
组合示例: 定义 VM -and- 设置提供程序名称
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 名称: “barhost”
评论: 如果您同时使用这两种方法,则在提供程序配置块中分配的值name获胜。基于zook的(评论者)输入进行简化
hostname
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.hostname = “buzbar” end
评论: 这将设置 VM 内的主机名。这将是hostnameVM 中命令的输出,这也是提示中可见的内容vagrant@<hostname>,如下所示vagrant@buzbar
vagrant@<hostname>
vagrant@buzbar
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 的新手,所以我还不能谈论最佳实践。)