【发布时间】:2014-01-06 22:44:18
【问题描述】:
我正在尝试让 vagrant 配置具有两个网络接口的 VM:
- eth0:与 DHCP 对话的 NAT(虚拟盒)类型接口
- eth1:带有静态 IP 的主机专用(虚拟机)接口
在 virtualbox 上一切正常。我将 eth0 作为 NAT 类型的接口,通过 DHCP 连接到 Internet,将 eth1 作为静态 IP,我可以从 virtualbox 主机连接到它(我只需要在 virtualbox 设置中添加一个私有子网)。但是,当我打包此 VM 并尝试将其部署为 vagrant 我无法自动启动 eth1,因为 MAC 地址被 Vagrant 更改(这意味着静态网络配置胜出'不适用于它)
默认情况下,在 vagrant 上,第一个适配器始终设置为 NAT-ed 接口。这意味着我实际上不需要在 vagrantfile 中为 eth0 添加任何内容。
对于 eth1,我在 Vagrantfile 中添加了以下内容:
config.vm.network :private_network,ip:"192.168.100.201",:mac => "080027df863a", :adapter => 2
问题:当我启动 vm(vagrant up)时,为 eth1 分配了一个新 MAC 。因此,我在 /etc/sysconfig/network-scripts/ifcfg-eth1 中已有的静态 IP 映射无效(因为它指向我在 virtualbox 中创建 VM 时分配的 MAC)。
如果我从 virtualbox 中删除虚拟机,重新打包并通过 vagrant 部署虚拟机,配置相同,接口将被添加,但 MAC 地址再次不同(并且 /etc/sysconfig/network- 中不存在初始化脚本脚本/)
TLDR:我想创建一个 vagrant box,其中 eth0 作为 NAT 接口(DHCP),eth1 作为静态主机接口(静态 IP)。尽可能自动化地完成它的最佳方法是什么?在虚拟机从盒子中获取配置后,我不想做任何事情。
谢谢
【问题讨论】:
-
尝试将 config.vm.network 指令放在 Vagrantfile 中,并使用 package 命令的 --vagrantfile 选项将其添加到框中。
-
那行不通。在 vagrant up 之后,我仍然得到一个 eth2(而不是 eth1),它的 MAC 与我在 vagrantfile 中分配的 MAC 不同。
标签: linux networking virtualbox vagrant