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
です)。
ここで明らかな何かを見逃していますか?
この問題は、vagrantの次のリリースで解決されるようです。 https://github.com/mitchellh/vagrant/issues/7155
Jeff Geerlingから別のボックスを試しました https://Twitter.com/geerlingguy/status/723571293174427648?lang=fr それは私にとって完璧に機能しました。ジェフはVagrant/Ansibleで多くの素晴らしい仕事をしてきたので、Vagrantの次のバージョンがリリースされる前の最良のソリューションだと思います
ubuntu/xenial64
は公式のUbuntuボックスですが、ネットワーク構成に関する いくつかの問題があります であり、@ Maximeの回答で説明されているVagrantの問題ではありません。
したがって、問題で言及されているように、 bento ボックス(コミュニティによって管理され、Opscode Chefがプロジェクトのリーダーとして使用されます)を使用することをお勧めします。 bento/ubuntu-16.04
。
元の質問で説明したのと同様の問題に直面しました。
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
この問題は、新しいUbuntuバージョンのネットワークインターフェイスの命名規則によるものです。 Vagrant VMのプロビジョニングに失敗しましたが、引き続きsshできます(vagrant ssh
)。そこには、eth1
という名前のインターフェースがないことがわかります(ifconfig -a
またはip link
を使用できます)。私の場合、インターフェイスenp0s3
およびenp0s8
が表示されます。
issue 6871 で述べたように
...静的な割り当てではなく、インターフェイスを検出する方法が必要です...
...または、クラウドイメージを変更するようにUbuntuを説得します。
現時点では、クリーンなソリューションはありません。
実際、Maximesの回答に加えて、新しいバージョンが伝達されるまで、ボックスのGRUBコマンドラインを変更できます。
/etc/default/grub
に移動し、適切な行をGRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
に設定するだけです。正しい名前(eth0 ...)を反映するには、/etc/network/interfaces
を変更する必要があります。
詳細については、certdepotのドキュメント を参照してください。