我想要 vagrant to provision a VM with two network interfaces:
-
eth0:与DHCP通信的NAT(虚拟盒)类型接口
-
eth1:具有 static IP的仅主机(虚拟机)接口
在虚拟机上一切正常 . 我将eth0作为NAT类型接口,通过DHCP和eth1连接到互联网作为静态IP,我可以从虚拟机主机连接到该静态IP(我只需要在虚拟机设置中添加私有子网) . 但是当我打包这个虚拟机并尝试将其部署为来自vagrant I am unable to get eth1 to be brought up automatically as the MAC address gets changed by Vagrant 的框时(这意味着静态网络配置将不适用于它)
默认情况下,在vagrant上,第一个适配器始终设置为NAT-ed interfance . 这意味着我不需要在vagrantfile中为eth0添加任何内容 .
对于eth1,我在Vagrantfile中添加了以下内容:
config.vm.network:private_network,ip:“192.168.100.201”,:mac =>“080027df863a”,:adapter => 2
The problem: 当我启动vm(流浪汉)时 new MAC is assigned 为eth1 . 因此,我在/ etc / sysconfig / network-scripts / ifcfg-eth1中已经存在的静态IP映射无效(因为它指向我在virtualbox中创建VM时分配的MAC) .
如果我从虚拟机中删除虚拟机,重新打包并通过流浪汉部署虚拟机,配置相同,接口将被添加,但MAC地址不同(/ etc / sysconfig / network-scripts /中不存在初始化脚本)
TLDR:我想创建一个流浪盒,其中eth0作为NAT-ed接口(DHCP),eth1作为静态主机接口(静态IP) . 尽可能实现自动化的最佳方法是什么? VM从盒子中获取配置后,我不想做任何事情 .
谢谢
1 回答
首次启动或配置时,Virtualbox会设置MAC地址 . 这意味着您很可能需要修改Virtualbox本身而不是vm . 以下是一些可能有用的链接:
http://docs.vagrantup.com/v2/virtualbox/configuration.html
http://www.virtualbox.org/manual/ch08.html
这是一些可能也可以工作的代码,但我还没有对它进行过测试 .
据我所知,这需要添加到您的Vagrant文件中,以便在
vagrant up
或vagrant reload --provision
上修改MAC地址 .上面的大多数代码都是Vagrantfile中的默认代码,但是将此行添加到Virtualbox提供程序行:
vb.customize ["modifyvm", :id, "--macaddress2", "080027df863a"]