ubuntu/xenial64 Vagrant box 的网络设置失败

ubuntu/xenial64 Vagrant box 的网络设置失败

随着官方 Ubuntu 16.04 LTS(Xenial Xerus)Vagrant box 图像(在 VirtualBox 上)我在基本网络设置方面遇到问题:

我的Vagrantfile

Vagrant.configure(2) do |config|

  config.vm.box = 'ubuntu/xenial64'

  config.vm.define "xenial" do |server|
    server.vm.network "private_network", ip: "192.168.10.10"
  end
end

vagrant up结果:

==> xenial: Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/sbin/ifdown eth1 2> /dev/null

Stdout from the command:



Stderr from the command:

sudo: unable to resolve host ubuntu-xenial
mesg: ttyname failed: Inappropriate ioctl for device

将配置留给 DHCP 也不起作用:

server.vm.network "private_network", type: "dhcp"

同时,上述配置适用于ubuntu/trusty64ubuntu/wily64非官方gbarbieru/xenial

尝试该命令/sbin/ifdown eth1 2> /dev/null没有结果,因为接口具有不同的命名方案(主要的是enp0s3)。

我是不是忽略了某些明显的东西,或者这个盒子坏了?

答案1

该问题似乎在 vagrant 的下一个版本中得到解决:https://github.com/mitchellh/vagrant/issues/7155

我尝试了 Jeff Geerling 的另一个盒子https://twitter.com/geerlingguy/status/723571293174427648?lang=fr对我来说效果非常好。Jeff 在 Vagrant/Ansible 上做了很多出色的工作,所以我认为这是 Vagrant 下一版本发布之前的最佳解决方案

答案2

尽管ubuntu/xenial64是官方的 Ubuntu 盒子,它有一些问题关于网络配置,这不是 Vagrant 问题,正如 @Maxime 的回答中解释的那样。
因此,正如问题中提到的那样,最好使用便当盒子(由社区维护,Opscode Chef 是项目负责人),在这种情况下将是bento/ubuntu-16.04

答案3

该问题是由于新版 Ubuntu 中的网络接口命名约定造成的。您的 Vagrant VM 未能配置,但您仍可以通过 ssh 连接到它 ( vagrant ssh)。在那里,您会看到没有命名的接口eth1(您可以使用ifconfig -aip link)。在我的例子中,我看到了接口enp0s3enp0s8

正如所提到的问题 6871

...我们需要一种方法来检测接口,而不是进行静态分配......

...或者说服 ubuntu 更改他们的云图像。

目前,尚无干净的解决方案。

答案4

我遇到了与原始问题中讨论的类似的问题。

我正在使用 Vagrant 1.8.1。使用 ubuntu/trusty64 框工作正常,但是,当我尝试使用 ubuntu/xenial64 框时,我遇到了同样的问题。评论在这个问题线程中给我找到了一个解决方案,似乎有效。

我改变了路线

config.vm.network "private_network", ip: "192.168.33.10"

在 Vagrantfile 中

config.vm.network "private_network", ip: "192.168.33.10", auto_config: false

相关内容