如何使用VMware配置器在Vagrant中设置eth0 MAC地址?

时间:2014-10-07 23:21:44

标签: vagrant ethernet mac-address vmware-workstation vmware-fusion

Vagrant依靠VMware(工作站和Fusion)生成从一个盒子部署的guest虚拟机上的eth0(第一个和默认的以太网接口)的MAC地址。

我想修复此MAC地址,使其在每次重新创建VM时都是静态的,不会重新生成,以便VMware DHCP服务每次都可以为其分配相同的IP地址。

1 个答案:

答案 0 :(得分:0)

首先确保VMware DHCP服务通过编辑具有不同locations depending on OSvmnetdhcp.conf将IP地址分配给指定的MAC地址。在文件末尾放置一个条目,用所需的值替换主机名,MAC和IP:

host hostname {
    hardware ethernet 00:0A:AA:AA:AA:AA;
    fixed-address 192.168.1.1;
}

重新启动VMware DHCP服务以加载这些更改。

Vagrantfile中使用以下设置配置默认网络接口:

Vagrant.configure("2") do |config|
    config.vm.define 'hostname' do |hostname|
        hotname.vm.box = box
        hostname.ssh.host = '192.168.1.1'
        puppet.vm.provider :vmware_fusion do |v, override|
            v.vmx['ethernet0.addressType'] = 'static'
            v.vmx['ethernet0.address'] = '00:0A:AA:AA:AA:AA'
       end
       puppet.vm.provider :vmware_workstation do |v, override|
            v.vmx['ethernet0.addressType'] = 'static'
            v.vmx['ethernet0.address'] = '00:0A:AA:AA:AA:AA'
        end
    end
end

下次虚拟机启动vagrant up时,它将分配静态MAC并从DHCP接收相同的IP地址。

使用此方法也可以为ethernet0操纵其他vmx keys