随着官方 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/trusty64
和ubuntu/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
答案3
该问题是由于新版 Ubuntu 中的网络接口命名约定造成的。您的 Vagrant VM 未能配置,但您仍可以通过 ssh 连接到它 ( vagrant ssh
)。在那里,您会看到没有命名的接口eth1
(您可以使用ifconfig -a
或ip link
)。在我的例子中,我看到了接口enp0s3
和enp0s8
。
正如所提到的问题 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