【问题标题】:Vagrant how to force libvirt to use a different network interfaceVagrant 如何强制 libvirt 使用不同的网络接口
【发布时间】:2016-05-28 00:30:39
【问题描述】:

我正在使用 Vagrant 定义具有静态 IP 地址的 Fedora 机器。

Vagrant.configure("2") do |config|
  config.vm.network :public_network, :bridge => 'enp0s25', :dev => 'enp0s25'
  config.vm.network "private_network", ip: "192.168.122.1"
  config.vm.provision "shell", inline: "ifconfig"
  config.vm.define "fedora1" do |fedora1|
    fedora1.vm.box = "fedora/23-cloud-base"
  end
end

问题是,如果我尝试配置 VM,则会引发错误:

调用 virDomainCreateWithFlags 失败:无法获取索引 接口 eth0:没有这样的设备

事实上,我的 Fedora 21 上没有 eth0,但是

enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.1.71.85  netmask 255.255.255.0  broadcast 10.1.71.255
        inet6 fe80::6af7:28ff:fef3:b97d  prefixlen 64  scopeid 0x20<link>
        ether 68:f7:28:f3:b9:7d  txqueuelen 1000  (Ethernet)
        RX packets 1753807  bytes 1271298509 (1.1 GiB)
        RX errors 0  dropped 26  overruns 0  frame 0
        TX packets 771439  bytes 73736761 (70.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xe1200000-e1220000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 1450325  bytes 565140300 (538.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1450325  bytes 565140300 (538.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:5f:e6:70  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.121.1  netmask 255.255.255.0  broadcast 192.168.121.255
        ether 52:54:00:fe:98:b5  txqueuelen 0  (Ethernet)
        RX packets 3673  bytes 403458 (394.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2367  bytes 381415 (372.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

添加行:

config.vm.network :public_network, :bridge => 'enp0s25', :dev => 'enp0s25'

没有产生任何效果。有没有解决办法(除了恢复旧的eth0接口)?

【问题讨论】:

  • 迟到了,但您可以打开 Virt Manager 并手动将界面更改为“enp0s25”。之后up 应该可以正常工作。

标签: vagrant libvirt


【解决方案1】:

我今天遇到了同样的问题,解决方案很简单,只需在对 Vagrantfile 进行修改后销毁 vagrant 机器即可。 vagrant destroy fedora1 &amp;&amp; vim Vagrantfile &amp;&amp; vagrant up fedora1 --provider libvirt

$ vagrant plugin list
fog-libvirt (0.0.3)
  - Version Constraint: 0.0.3
vagrant-libvirt (0.0.32)

$ vagrant version
Installed Version: 1.6.5

希望对你有所帮助。

【讨论】:

  • 谢谢!我尝试将 config.vm.network 选项更改为不同的设置六次,结果发现在您首先运行 vagrant destroy 之前没有任何应用。
猜你喜欢
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
相关资源
最近更新 更多