Не вдалося налаштувати мережу для вікна vabunt ubuntu / xenial64


15

З офіційним зображенням вікна Vagrant (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

Здається, проблема вирішиться в наступному випуску бродяг: https://github.com/mitchellh/vagrant/isissue/7155

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


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

2

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


Коробки "bento" також порекомендував технічний
сервіс

1

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

Як згадується у випуску 6871

... нам потрібен спосіб виявити інтерфейси, а не статичне призначення ...

... або переконати ubuntu змінити свій хмарний образ.

Наразі чистого рішення немає.


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.