2015-10-10 46 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會直接登錄你的虛擬機 –