如何在Vagrant中自动选择桥接网络接口?

时间:2015-10-21 03:13:48

标签: vagrant vagrantfile vagrant-windows

我应该在Vagrant文​​件中添加什么来防止询问(在流浪汉命令之后)

  

网络应该连接哪个接口?

Available bridged network interfaces:
1) Intel(R) 82579LM Gigabit Network Connection
2) VMware Virtual Ethernet Adapter for VMnet1
3) VMware Virtual Ethernet Adapter for VMnet8

我想选择#1选项。 当前我需要手动输入“1”。 请帮忙!

4 个答案:

答案 0 :(得分:33)

在你的Vagrantfile中,你应该添加

config.vm.network "public_network", bridge: "Intel(R) 82579LM Gigabit Network Connection"

然后它应该使vagrant高兴(实际上它更多的VirtualBox在这种情况下变得快乐)并为VM选择正确的网络适配器

答案 1 :(得分:2)

您实际上可以提供网桥的列表,Virtualbox会循环浏览它们,直到找到可以使用的网桥为止。按照您希望它们如何尝试的顺序进行放置:

例如在我的OSX Macbook上:

  config.vm.network "public_network", bridge: [
      "en0: Wi-Fi (AirPort)",    
      "en1: Wi-Fi (AirPort)",
  ]

所以在您的情况下:

config.vm.network "public_network", bridge: [
    "Intel(R) 82579LM Gigabit Network Connection",
    "VMware Virtual Ethernet Adapter for VMnet1",
    "VMware Virtual Ethernet Adapter for VMnet8",
]

答案 2 :(得分:1)

我只是从无业游民的配置文件中取出config.vm.network:public_network。

流浪汉启动了,没有问我关于连接互联网的网桥接口的奇怪问题。

答案 3 :(得分:0)

对于Linux,我使用以下事实:该文件是Ruby脚本,用于检测默认路由并使用该接口的名称。这样一来,我们整个团队就可以按原样使用Vagrantfile,而不必对接口名称进行硬编码或不断更新列表。我想您可以在Windows或Mac上做类似的事情(猜测Mac可能实际上是相同的,因为它是* nix)。

请注意,如果未检测到默认网络接口,则仍然会提示您选择一个。

# Grab the name of the default interface
$default_network_interface = `ip route | grep -E "^default" | awk '{printf "%s", $5; exit 0}'`
...
Vagrant.configure("2") do |config|
    # Specify the interface when creating the public network
    config.vm.network "public_network", bridge: "#$default_network_interface"
    ...
end