Сбой сетевых настроек для Vagrant-бокса ubuntu/xenial64

Сбой сетевых настроек для Vagrant-бокса ubuntu/xenial64

СОфициальная 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

Я попробовал еще одну коробку от Джеффа Гирлингаhttps://twitter.com/geerlingguy/status/723571293174427648?lang=frи это сработало для меня идеально. Джефф проделал большую работу над Vagrant/Ansible, так что я думаю, это лучшее решение перед выпуском следующей версии Vagrant

решение2

Несмотря на то ubuntu/xenial64, что это официальная коробка Ubuntu, онаесть некоторые проблемыотносительно конфигурации сети и не является проблемой Vagrant, как объясняется в ответе @Maxime.
Поэтому, как упоминается в проблеме, предпочтительнее использоватьбентоbox (поддерживаемый сообществом и Opscode Chef в качестве лидера проекта), который в данном случае будет bento/ubuntu-16.04.

решение3

Проблема связана с соглашением об именовании сетевых интерфейсов в новых версиях Ubuntu. Ваша Vagrant VM не была подготовлена, но вы все равно можете подключиться к ней по ssh ( vagrant ssh). Там вы увидите, что нет названного интерфейса eth1(можно использовать ifconfig -aили ip link). В моем случае я вижу интерфейсы enp0s3и enp0s8.

Как упоминалось ввыпуск 6871

... нам нужен способ обнаружения интерфейсов вместо статического назначения...

... или убедить Ubuntu изменить свой облачный образ.

На данный момент однозначного решения не существует.

решение4

Я столкнулся с проблемой, аналогичной той, что обсуждалась в первоначальном вопросе.

Я использую Vagrant 1.8.1. и использование ubuntu/trusty64 box работало просто отлично, однако, когда я попытался использовать ubuntu/xenial64 box, я столкнулся с той же проблемой. Комментарийв этой темепривели меня к решению, которое, кажется, сработало.

Я изменил строку.

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

в Vagrantfile для

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

Связанный контент