小编典典

如何更改 Vagrant 的“默认”机器名称?

all

启动 vagrant box 时,“default”这个名字是从哪里来的?

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

有没有办法设置这个?


阅读 134

收藏
2022-05-17

共1个答案

小编典典

我发现多个选项令人困惑,所以我决定测试所有选项以了解它们的确切作用。

我正在使用 VirtualBox 4.2.16-r86992 和 Vagrant 1.3.3。

我创建了一个名为nametest并运行的目录

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

生成一个默认的 Vagrantfile。然后我打开了 VirtualBox GUI,这样我就可以看到我创建的盒子的名称。

  1. 默认 Vagrant 文件
    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 格式。

  1. 定义虚拟机
    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 名称: “nametest_foohost_1386347922”

注释: 如果您明确定义 VM,则使用的名称将替换标记“默认”。这是控制台上的名称 vagrant输出。 基于zook的(评论者)输入进行简化

  1. 设置提供者名称
    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 GUI 中显示的整个名称。

组合示例: 定义 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的(评论者)输入进行简化

  1. 套装hostname(奖金)
    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    

    config.vm.hostname = “buzbar”
    end

评论: 这将设置 VM 内的主机名。这将是hostnameVM
中命令的输出,这也是提示中可见的内容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 的新手,所以我还不能谈论最佳实践。)

2022-05-17