【问题标题】:Vagrant unable to set static private IP automaticallyVagrant 无法自动设置静态私有 IP
【发布时间】: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


【解决方案1】:

第一次启动或配置时,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 up 或 vagrant reload --provision 上修改 MAC 地址。

上面的大部分代码在 Vagrantfile 中是默认的,但是将这一行添加到 Virtualbox 提供程序行: vb.customize ["modifyvm", :id, "--macaddress2", "080027df863a"]

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 2014-11-10
    • 2013-08-16
    • 1970-01-01
    • 2020-06-23
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    相关资源
    最近更新 更多