Сбой настроек сети для Ubuntu / xenial64 Vagrant box


15

С официальным изображением Vagrant Ubuntu 16.04 LTS (Xenial Xerus) (на 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

Эта проблема, похоже, будет решена в следующем выпуске vagrant: https://github.com/mitchellh/vagrant/issues/7155

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


У меня была такая же проблема с официальной коробкой Ubuntu 16.04. После нескольких часов проб и ошибок я попробовал коробку geerlingguy, и она сработала как шарм. Официальная коробка Ubuntu 14.04 LTS тоже была в порядке.
Джабба

2

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


Ящики с бенто также были рекомендованы сопровождающим
Вагранта

1

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

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

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

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

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


1

На самом деле, в дополнение к ответу Maximes, вы можете изменять командную строку GRUB в своем ящике, пока не будет распространена новая версия.

Просто зайдите /etc/default/grubи установите соответствующую строку в GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" Вы должны изменить, /etc/network/interfacesчтобы отразить правильные имена (eth0 ...).

См. Документацию в certdepot для получения дополнительной информации .


1

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

Я использую 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.