ubuntu/xenial64 Vagrant 盒子的網路設定失敗

ubuntu/xenial64 Vagrant 盒子的網路設定失敗

隨著官方 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

我嘗試了傑夫吉爾林的另一個盒子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

相關內容