我的Vagrant盒子使用公共网络,因此他们可以在zeroconf/Bonjour上做广告.在Vagrantfile明确地设置桥接网络接口:
config.vm.network :public_network, :bridge => 'en2: USB Ethernet'
Run Code Online (Sandbox Code Playgroud)
大部分时间一切正常,但如果我通过不同的网络连接并且指定的接口不存在,vagrant up将提示我从可用的网络接口中选择:
[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?
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉Vagrant从首选网络接口列表中进行选择?如果主网络不可用,我想要的是优雅的后备.
joe*_*ler 13
这是我提出的解决方案,到目前为止似乎运作良好:
在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]
Run Code Online (Sandbox Code Playgroud)
然后,在里面Vagrant.configure,$network_interface用来指定桥:
config.vm.network :public_network, :bridge => $network_interface
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4797 次 |
| 最近记录: |