web-dev-qa-db-ja.com

ubuntu / xenial64 Vagrantボックスのネットワーク設定が失敗する

Official Ubuntu 16.04 LTS(Xenial Xerus) Vagrant box image(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です)。

ここで明らかな何かを見逃していますか?

15
techraf

この問題は、vagrantの次のリリースで解決されるようです。 https://github.com/mitchellh/vagrant/issues/7155

Jeff Geerlingから別のボックスを試しました https://Twitter.com/geerlingguy/status/723571293174427648?lang=fr それは私にとって完璧に機能しました。ジェフはVagrant/Ansibleで多くの素晴らしい仕事をしてきたので、Vagrantの次のバージョンがリリースされる前の最良のソリューションだと思います

15
Maxime Thoonsen

ubuntu/xenial64は公式のUbuntuボックスですが、ネットワーク構成に関する いくつかの問題があります であり、@ Maximeの回答で説明されているVagrantの問題ではありません。
したがって、問題で言及されているように、 bento ボックス(コミュニティによって管理され、Opscode Chefがプロジェクトのリーダーとして使用されます)を使用することをお勧めします。 bento/ubuntu-16.04

2
Alter Lagos

元の質問で説明したのと同様の問題に直面しました。

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
1
Dohn Joe

この問題は、新しいUbuntuバージョンのネットワークインターフェイスの命名規則によるものです。 Vagrant VMのプロビジョニングに失敗しましたが、引き続きsshできます(vagrant ssh)。そこには、eth1という名前のインターフェースがないことがわかります(ifconfig -aまたはip linkを使用できます)。私の場合、インターフェイスenp0s3およびenp0s8が表示されます。

issue 6871 で述べたように

...静的な割り当てではなく、インターフェイスを検出する方法が必要です...

...または、クラウドイメージを変更するようにUbuntuを説得します。

現時点では、クリーンなソリューションはありません。

1
jzer7

実際、Maximesの回答に加えて、新しいバージョンが伝達されるまで、ボックスのGRUBコマンドラインを変更できます。

/etc/default/grubに移動し、適切な行をGRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"に設定するだけです。正しい名前(eth0 ...)を反映するには、/etc/network/interfacesを変更する必要があります。

詳細については、certdepotのドキュメント を参照してください。

1
Snafu