Vagrant global-status所有VM都被命名为default

时间:2015-10-10 22:37:53

标签: vagrant

当我运行vagrant global-status时,我会查看正在运行的所有流氓托管虚拟机的列表,但是我没有预料到会输出机器详细信息。即使我在初始化期间为每台计算机提供了明确的name,但每台计算机的name输出中global-status的值始终为default

为什么vagrant statusvagrant global-status没有列出方框的实际名称?有时,当我摧毁了一个盒子时,它实际上已经摧毁了一个以上的盒子。

id       name    provider   state    directory                           
-------------------------------------------------------------------------
e44520d  default virtualbox poweroff /Users/name/code/foo        
1310726  default virtualbox poweroff /Users/name/code/bar    
430fd52  default virtualbox poweroff /Users/name/code/baz 

这些计算机名为foobarbaz ...为什么它们显示为default

1 个答案:

答案 0 :(得分:2)

如果您将默认的Vagrantfile配置为配置,则您的计算机虚拟机将被命名为default,如

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu-12.04"
  config.vm.hostname = "foo"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  . . . 

现在,如果你有一个多机器配置,你的Vagrantfile中会有这样的东西(简化)

Vagrant.configure("2") do |config|

  config.vm.box = "ubuntu-12.04"

  config.vm.define "db" do |db|
    db.vm.hostname = db.test

    db.vm.provider "vmware_fusion" do |vm|
      vm.vmx["memsize"] = "2048"
    end

    db.vm.provision "shell", path: "bootstrap-dev.sh"
  end

  config.vm.define "app", primary: true do |app|
    app.vm.hostname = app.test
    app.vm.network "private_network", "192.168.50.11"
    app.vm.synced_folder "project/site", "/var/www"
  end
end

在这种情况下,您已定义了2台计算机dbappvagrant global-status将提示

id       name    provider      state       directory
-----------------------------------------------------------------------------------------------------------
de264ac  db      vmware_fusion not running /Volumes/Transcend/Project1
bdd4385  app     vmware_fusion not running /Volumes/Transcend/Project1