2013-12-18 75 views
1

我試圖讓無業遊民,以提供一個虛擬機有兩個網絡接口的靜態私有IP:流浪無法設置自動

  • 爲eth0:NAT(VirtualBox的)類型接口,會談到DHCP
  • eth1:僅限主機(virtualbox)接口static IP

在virtualbox上一切正常。我將eth0作爲NAT類型接口,通過DHCP連接到互聯網,eth1作爲靜態IP,我可以通過它從虛擬主機連接到虛擬主機(我只需要將私有子網添加到虛擬機設置)。但是,當我打包這個虛擬機並嘗試將它部署爲一個流浪者的盒子時我無法讓eth1自動啓動,因爲MAC地址被Vagrant更改(這意味着靜態網絡配置將不適用於它)

默認情況下,第一個適配器始終設置爲NAT-ed接口。這意味着我不需要在eth0的vagrantfile中添加任何內容。

對於eth1的我已經添加在Vagrantfile以下:

config.vm.network:private_network,IP: 「192.168.100.201」,:MAC => 「080027df863a」:適配器=> 2

問題:當我啓動虛擬機(vagrant up)時,一個新MAC被分配給eth1的。因此,我在/ etc/sysconfig/network-scripts/ifcfg-eth1中已有的靜態IP映射無效(因爲它指向在virtualbox中創建VM時分配的MAC)。

如果我從virtualbox中刪除虛擬機,重新包裝它並通過vagrant部署一個虛擬機,使用相同的配置將添加接口,但MAC地址不同(並且/ etc/sysconfig/network中不存在初始化腳本-descripts /)

TLDR:我想創建一個eth0作爲NAT-ed接口(DHCP)和eth1作爲靜態主機接口(靜態IP)的流浪盒。儘可能自動完成它的最好方法是什麼?虛擬機從框中提供後,我不想做任何事情。

謝謝

+0

試圖把在Vagrantfile的config.vm.network指令和使用的--vagrantfile選項包命令將其添加到框中。 – Emyl

+0

這沒有奏效。在流浪之後,我仍然得到一個eth2(而不是eth1),其MAC地址與我在vagrant文​​件中指定的不同。 – keftes

回答

2

當第一次啓動或設置Virtualbox時,MAC地址正在設置。這意味着您很可能需要修改Virtualbox本身而不是vm。這裏有一些鏈接,可以幫助:

http://docs.vagrantup.com/v2/virtualbox/configuration.html

http://www.virtualbox.org/manual/ch08.html

這是一些代碼,也可以工作,但我沒有實際測試過。

config.vm.provider :virtualbox do |vb| 
    # Don't boot with headless mode 
    #vb.gui = true 

    # Use VBoxManage to customize the VM. For example to change memory: 
    #vb.customize ["modifyvm", :id, "--memory", "1024"] 

    # This might be an example of modifying the MAC address: 
    vb.customize ["modifyvm", :id, "--macaddress2", "080027df863a"] 
end 

至於我可以告訴,這是需要被添加到您的Vagrantfile對vagrant upvagrant reload --provision要修改的MAC地址是什麼。

大部分的代碼上面是默認的Vagrantfile但此行添加到VirtualBox的供應商線: vb.customize ["modifyvm", :id, "--macaddress2", "080027df863a"]