С Официальным Ubuntu 16.04 LTS (Xenial Xerus) Образ Vagrant Box (на VirtualBox) У меня проблемы с основными настройками сети:
My 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
).
Я что-то упускаю здесь, или коробка просто сломана?
Проблема связана с соглашением об именах сетевых интерфейсов в новых версиях Ubuntu. Ваша Vagrant VM не была подготовлена, но вы все равно можете подключиться к ней по ssh (vagrant ssh
). Там вы увидите, что нет интерфейса с именем eth1
(вы можете использовать ifconfig -a
или ip link
). В моем случае я вижу интерфейсы enp0s3
и enp0s8
.
Как упоминалось в , выпуск 6871
... нам нужен способ обнаружения интерфейсов вместо статического назначения ...
... или убедить ubuntu сменить имидж облака.
blockquote>На данный момент нет чистого решения.
Несмотря на ubuntu/xenial64
поле Official Ubuntu, оно имеет некоторые проблемы относительно конфигурации сети и не является Бродячей проблемой, как объяснен в ответе @Maxime.
Так, как в проблеме упоминается, предпочтен для использования бенто поле (сохраняемый сообществом и с Шеф-поваром Opscode как лидер проекта), который для этого случая был бы bento/ubuntu-16.04
.
На самом деле, дополнительно к ответу Maximes, Вы могли изменить командную строку GRUB в своем поле, пока новая версия не распространена.
Просто переходят в /etc/default/grub
и устанавливают соответствующую строку на GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
, необходимо измениться /etc/network/interfaces
для отражения корректных имен (eth0...).
Посмотрите documentaion в certdepot для большего количества Информации .
Проблема, кажется, решена в следующем выпуске бродяги: https://github.com/mitchellh/vagrant/issues/7155
я попробовал другое поле от Jeff Geerling https://twitter.com/geerlingguy/status/723571293174427648? lang=fr и это работали отлично на меня. Jeff сделал большую большую работу над Vagrant/Ansible, таким образом, я предполагаю, что это - лучшее решение перед выпуском следующей версии Бродяги
Я столкнулся с подобной проблемой, как обсуждено в исходном вопросе.
Я использую Бродягу 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