gpt4 book ai didi

vagrant - Vagrant 的首选后备网络接口(interface)?

转载 作者:行者123 更新时间:2023-12-02 07:13:51 27 4
gpt4 key购买 nike

我的 Vagrant 盒子使用公共(public)网络,因此它们可以通过 Zeroconf/Bonjour 为自己做广告。 Vagrantfile 显式设置桥接网络接口(interface):

  config.vm.network :public_network, :bridge => 'en2: USB Ethernet'

大多数时候一切正常,但如果我通过不同的网络连接并且指定的接口(interface)不存在,vagrant up 将提示我从可用的网络接口(interface)中进行选择:

[default] Specific bridge 'en2: USB Ethernet' not found. You may be asked to specify
which network to bridge to.
[default] Available bridged network interfaces:
1) en0: Wi-Fi (AirPort)
2) p2p0
What interface should the network bridge to?

有没有办法告诉 Vagrant 从首选网络接口(interface)列表中进行选择?我想要的是在主网络不可用时进行优雅的回退。

最佳答案

这是我提出的一个解决方案,到目前为止似乎效果很好:

Vagrantfile 中,将以下内容添加到文件顶部:

pref_interface = ['en2: USB Ethernet', 'en0: Wi-Fi (AirPort)']
vm_interfaces = %x( VBoxManage list bridgedifs | grep ^Name ).gsub(/Name:\s+/, '').split("\n")
pref_interface = pref_interface.map {|n| n if vm_interfaces.include?(n)}.compact
$network_interface = pref_interface[0]

然后,在 Vagrant.configure 中,使用 $network_interface 指定桥接器:

config.vm.network :public_network, :bridge => $network_interface

关于vagrant - Vagrant 的首选后备网络接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17729757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com