当启动一个流浪盒子时,名字“默认”来自哪里?

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

有办法设置这个吗?


当前回答

我通过定义VagrantFile内部指定名称,并指定主机名,因此我喜欢在独立于设备的操作系统执行Linux命令时看到我的项目的名称。✌️

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

其他回答

这是我为单个vm分配名称的方式。把你的名字改为你想要的名字。

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)

是的,对于Virtualbox提供商做这样的事情:

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

如果你想改变其他任何东西而不是“默认”,那么只需添加这些额外的行到你的Vagrantfile:

当使用"vagrant status"时,更改basebox的名称

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

哪里“tendo”将是名称,将出现而不是默认

我通过定义VagrantFile内部指定名称,并指定主机名,因此我喜欢在独立于设备的操作系统执行Linux命令时看到我的项目的名称。✌️

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

如果有很多人使用你的流浪文件-你可能想要动态设置名称。下面是如何使用用户名从你的主机作为盒子的名称和主机名的例子:

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