2015-10-10 24 views
2

当我运行vagrant global-status时,我收到了所有我正在运行的流量管理虚拟机的列表,但我没有想到的东西与机器详细信息一起输出。即使我在初始化过程中给每台机器一个明确的name,但每台机器的global-status输出中的name的值始终为defaultVagrant全局状态所有虚拟机的默认值

为什么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

如果您有默认Vagrantfile的配置,您的主机VM将被命名为默认,所以像

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 
+0

我明白了......现在确实有道理,为什么如果你只有一个VM流浪文件,为什么他们都被称为'default'。谢谢。 –

+0

如果你改变这个名字,你需要在使用'vagrant ssh'时指定它吗?就像你使用多宿主Vagrantfile一样吗? – Wildcard

+1

@Wildcard如果你只有1个虚拟机,没有ssh会直接登录你的虚拟机 –